Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
中断
互斥锁mutex互斥量
原子指令-原子操作_atomic
很多变量多线程读写是使用关中断好还是使用互斥进行保护
发布于 2023-03-22 10:54:01 浏览:1010
订阅该版
我想问一下,就是我有很多变量会多线程读写操作,有一些会比较频繁,我读写的时候是使用中断去保护还是增加互斥量去保护。 1.如果加互斥量,当前低优先级读写线程在获取到互斥量进行读写的时候,高优先级线程会打断当前线程去获取同一个互斥量,由于锁被占,高优先级挂起,低优先级继续执行,释放互斥锁后高优先级执行。这样会有多两次线程切换开销。 2.如果在读写的时候进入中断临界,低优先级读写完后退出中断,然后切换到高优先级进行读写。 所以我想问问大家在遇到很多变量多个线程读写的情况下怎么进行保护的?或者有没有其他更好方案?
查看更多
xiaorui
认证专家
2023-03-22
小睿手办 https://item.taobao.com/item.htm?id=674889867009
都是孤立的单个变量的话,可以关注下最近在更新的 [原子](https://club.rt-thread.org/ask/tag/22828a671fc0bbba.html "原子")访问 - https://github.com/RT-Thread/rt-thread/pull/7053
4
个回答
默认排序
按发布时间排序
xddl00
2023-03-22
这家伙很懒,什么也没写!
互斥量里面也关了中断
红枫
认证专家
2023-03-23
这家伙很懒,什么也没写!
单是内存数据访问,读写速度快时间短,使用关中断是最直接高效的方式。如果访问操作时间长或须等待满足特定条件,那只能使用互斥量了。关中断防止访问冲突是最高效的方式,使用互斥量只是不得已的选择。
bernard
2023-03-23
这家伙很懒,什么也没写!
多使用互斥量,如果底层硬件支持原子操作,可以使用原子操作。别没事就使用关中断的方式,用多了,后面会很惨痛的
撰写答案
登录
注册新账号
关注者
0
被浏览
1k
关于作者
yinq2023
这家伙很懒,什么也没写!
提问
5
回答
2
被采纳
0
关注TA
发私信
相关问题
1
使用CmBacktrace定位错误异常,请教分析原因
2
ARM9、raspberry-pi中断问题
3
内联函数不压栈,会因为中断导致栈内现场被破坏吗
4
rt_hw_context_switch_interrupt的逻辑
5
中断的入口程序在哪个文件里?
6
我想实现一个定时器中断,发现rt_hw_interrupt_install未定义
7
临界区和关中断,是否需要同时使用?
8
gpio 引脚一直进中断,请问怎么办呢?
9
RT-Thread那些API可以在中断程序中调用?
10
spi dma 中断接收的问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【RT-Thread】【ci】【scons】将ci.attachconfig.yml和scons结合使用
2
Rt-thread中OTA下载后,bootloader不搬程序
3
ulog 日志 LOG_HEX 输出时间改为本地日期时间
4
在RT-Thread Studio中构建前执行python命令
5
研究一了一段时间RTT,直接标准版上手太难,想用nano,但又舍不得组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
9
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
7
次点赞
xiaorui
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部