我的开发环境是一个嵌入式 linux板,我正在学习pthread.
有没有比为每个全局变量设置两个条件变量更好的方法.解决方法 我会使用一个互斥锁,一个条件变量和一个谓词整数生成计数器(只是初始化为零的常规整数).逻辑的工作原理如下:
要更新值:锁定互斥锁.更新值.增加谓词整数.广播条件变量.释放互斥锁.
要读取当前值:锁定互斥锁.复制谓词整数生成计数器的值.读取值.释放互斥锁.
要检查新值:锁定互斥锁.根据上次读取值时复制的值检查谓词整数.如果它不同,则有一个新值.释放互斥锁.
等待新值:锁定互斥锁.虽然谓词整数仍保持上次读取值时保持的值,但阻止条件变量释放互斥锁.复制新的谓词整数以供下次等待.注意新值.释放互斥锁.
总结以上是内存溢出为你收集整理的linux – 多个线程定期更新全局变量,而第三个线程等待读取全部内容,希望文章能够帮你解决linux – 多个线程定期更新全局变量,而第三个线程等待读取所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)