大佬教程收集整理的这篇文章主要介绍了c – 无锁数据结构中的非POD类型,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,我需要从非生产者,多消费者无锁定的非POD类型队列推送/弹出.
boost :: lockfree :: queue实现似乎是我能找到的最具生产性的实时友好实现,它要求队列的模板类型可以简单地破坏/构造.
我可以重构我的团队的10,000行代码库,将状态与我所关注的每个类中的副作用分开,然后使用新的POD状态的Boost无锁队列 – 仅相当于原始类型.但是,在我这样做之前:我可以使用不同的策略为这些非POD类型编写无锁代码吗?
我的理解是这是为了防止构造函数/析构函数的副作用不是无锁/线程安全的.如果数据类型主要是“POD”,但是非平凡的构造函数/析构函数也是“无锁定”操作,例如,原子比较和交换静态成员变量?如果这种数据类型在无锁数据结构中被认为是安全的,那么@R_328_10675@用自己的无锁队列还是存在一个等效稳定的实现,而不是使用Boost队列?
当然,您需要管理实际对象的构造和销毁,但这些通常是本地操作,不会遇到并发问题.
以上是大佬教程为你收集整理的c – 无锁数据结构中的非POD类型全部内容,希望文章能够帮你解决c – 无锁数据结构中的非POD类型所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。