首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测没有互斥实现的竞争条件

检测没有互斥实现的竞争条件
EN

Stack Overflow用户
提问于 2013-12-24 02:54:36
回答 1查看 90关注 0票数 1

我知道我们可以通过使用原子锁变量实现互斥来检测和克服竞争条件,但是有没有办法在不实现互斥的情况下检测竞争条件呢?

互斥极大地增加了开销,所以我在想一种方法来克服竞争条件,而不需要任何额外的开销。

EN

回答 1

Stack Overflow用户

发布于 2013-12-24 03:12:36

同步根本不需要增加太多开销。通常有相当便宜的合适的方法来解决问题。如果你在这方面遇到了问题,如果你发布了你的场景的详细信息,以及你正在使用什么同步技术来保护它,我们也许能够提供一些建议。

至于避免同步的需要,确实没有好的方法。这是一个在并发编程中必须处理的问题。在许多情况下,您可以完全避免需要多个线程,而在其他情况下,您可以尽可能地隔离线程,并将同步需求减少到少数几个关键位置。例如,在许多情况下,我喜欢使用消息线程的概念,让一个线程负责所有的记账和数据访问。然后,工作线程将消息发送到此线程(使用同步队列)进行处理。这样做意味着我只需要提供一个同步的消息队列,所有其他操作都可以独立进行。

希望这能有所帮助!如果您需要更具体的想法/建议,请随时发布更多详细信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20749518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档