当前位置: 技术问答>linux和unix
linux的信号处理函数中如何访问共享资源
来源: 互联网 发布时间:2016-05-21
本文导语: rt 我想在信号处理函数中访问多线程共享资源,不知道要如何实现。 互斥锁,条件变量,信号量貌似都不是异步信号安全的。 烦请高手指点下,谢了先 | 我觉得可以有两种方式: 1.任务在屏蔽临界区是...
rt
我想在信号处理函数中访问多线程共享资源,不知道要如何实现。
互斥锁,条件变量,信号量貌似都不是异步信号安全的。
烦请高手指点下,谢了先
我想在信号处理函数中访问多线程共享资源,不知道要如何实现。
互斥锁,条件变量,信号量貌似都不是异步信号安全的。
烦请高手指点下,谢了先
|
我觉得可以有两种方式:
1.任务在屏蔽临界区是先阻塞信号,出临界区是开放信号。
2.自己另外起一个线程,将信号中需要处理的临界区由线程来操作,信号只是给该线程以通知。这样就可以使用线程间的互斥机制。
个人偏向于方案二。
1.任务在屏蔽临界区是先阻塞信号,出临界区是开放信号。
2.自己另外起一个线程,将信号中需要处理的临界区由线程来操作,信号只是给该线程以通知。这样就可以使用线程间的互斥机制。
个人偏向于方案二。
|
或者使用消息队列通知别的线程操作临界区,消息队列不需要同步
|
学习,帮顶!