![]() |
1
0
在中断中使用互斥锁通常不是一个好主意。首先,如果中断正在运行,那么它不能被任务中断,因此只需要单向保护。第二,如果中断无法获得互斥锁,那么它就无法阻止等待它,因此它必须退出而不访问资源。 如果中断需要做一些冗长的事情,请考虑将中断处理延迟到一个任务,或者使用 direct to task notification ,或使用 centralised deferred interrupt processing 特色 如果在中断中只需要使用信号量,则使用二进制信号量,而不是互斥量,因为互斥量具有优先级继承机制,在中断中几乎没有逻辑意义(优先级继承是指任务继承彼此的任务优先级,但中断不是任务,因此没有任务优先级)。 |
![]() |
arkham knight · 使用信号量的线程同步 7 年前 |
![]() |
K.Miao · 其他进程不会使用信号量唤醒 7 年前 |
|
Akhil V · 生产者消费者C中的细分错误 7 年前 |
![]() |
Dark Inspiration · 信号和互斥行为怀疑 8 年前 |
![]() |
sheikh_anton · 选择共享内存或unix信号量键的惯用方法 9 年前 |
|
user5134749 · 同步:线程以相同的顺序执行两个关键部分 9 年前 |
![]() |
Zhang Biao · 如何在FreeRTOS中使用互斥锁? 9 年前 |