【发布时间】:2014-04-19 10:38:08
【问题描述】:
我目前正在开发游戏服务器,目前我有一个设计问题。
游戏服务器有 World 类(它是单例的),当我从单一 I/O 服务更改为每个核心的 I/O 服务时,我认为我应该在我的 World 类中使用互斥锁。 因为来自客户端的数据包处理程序有时会使用 World 的函数执行操作。
有没有办法避免单例中的互斥锁?
【问题讨论】:
-
好吧,如果从多个线程中使用,不要使用会破坏事物的代码? :)
-
实际上,在进入多线程模式之前实例化你的单例是一个很好的做法,在应用程序开始附近的某个地方。然后你应该在确实需要的地方使用锁。如果不了解您的服务逻辑,就很难提出更准确的建议。
标签: c++ singleton boost-asio mutex