打印
[嵌入式linux]

大侠现身,linux全局变量在主循环和线程之间如何安全共享

[复制链接]
1098|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
snakeemail|  楼主 | 2013-9-29 21:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
arm上跑linux,有一个下位机,接口为usb,arm的上面还有一个上位机,通过网络通信。
1.线程里面是个loop,不停的通过usb轮询下位机的数据,把下位机的数据放到一个全局变量A
2.主循环里是网络通信,有一个上位机和主循环通过udp通信,不停的轮询全局变量A
问题1:在1中,我更新A的时候,要不要将A用互斥量锁定,主循环会不会来破坏A的更新。
问题2:在2中,我获取A时,是不是也要将爱那个A用户斥量锁定。

3.上位机发下数据B给主循环,主循环将全局变量B更新,线程又将B下发给下位机。
这个时候要不要将B锁定

相关帖子

沙发
snakeemail|  楼主 | 2013-9-30 13:39 | 只看该作者
王会计,阿南哥,版主,现原形呀

使用特权

评论回复
板凳
我不叫小梁| | 2013-10-1 22:46 | 只看该作者
你的变量应该是类似一个队列之类的东西吧,如果是,都要加锁

使用特权

评论回复
地板
原野之狼| | 2013-10-8 10:04 | 只看该作者
很明显  你描述的环境属于多线程环境  如果操作不具有原子性  那么就要进行互斥

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:提供500W线性 交流电源。0~300VAC,45~500Hz 提供10KW,0-330V直流电源,具体见http://blog.21ic.com/user1/3639/archives/2012/88528.html

547

主题

1910

帖子

8

粉丝