2

我正在从 xlobjects 切换到 boost::signals2 作为我的信号/插槽框架,希望建立连接、去除 threir、信号发射等是线程安全的。我根本对线程间信号发射不感兴趣。

所以简单的问题是: boost::signals2 线程是否安全,例如,两个或多个线程可以在同一个信号上建立连接?

此外,与 xlobjects 相比, boost::signals2 是否会导致性能损失?这并不重要,因为应用程序并不严重依赖信号/插槽,但我还是想知道。

4

2 回答 2

3

boost signals2 是线程安全的。

但是如果由于某种原因您需要额外的性能,并且可以保证单线程访问,signals2 库中有一个虚拟互斥锁,它将比真正的互斥锁快很多。

于 2015-05-15T04:49:17.790 回答
2

我相信您需要的关于 boost.signal 中线程安全的所有答案都在文档中(简短回答:是的,boost:signals2 是线程安全的)。关于性能,我想线程安全是有代价的,但只有一种方法可以确定:基准!

于 2010-11-18T09:45:44.620 回答