gpt4 book ai didi

c++ - 最佳实践 : syncing between threads

转载 作者:太空宇宙 更新时间:2023-11-04 15:28:51 24 4
gpt4 key购买 nike

在跨线程数据访问时是否几乎总是需要线程同步(即使用互斥量、信号量、关键部分等),即使在经过需求分析后不需要?

最佳答案

我总是建议使用最简单、最直接的同步方案,直到分析表明您不应该这样做 - 这通常意味着一些大锁与许多细粒度锁或无锁。

问题在于判断无锁代码是否正确比判断相应的有锁代码是否正确要困难得多。这给代码的维护者带来了很大的负担,他们很可能会出错并引入错误。即使您知道无锁对于您的代码当前的使用方式是安全的,但 future 可能会被不太了解的人改变。

其次,在许多情况下,带锁代码和无锁代码之间的性能差异可以忽略不计——除非您知道存在锁争用问题,否则不应考虑无锁。即使存在争用问题,无锁也不一定是最好的解决方案。

关于c++ - 最佳实践 : syncing between threads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1046078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com