我正在从 xlobjects 切换到 boost::signals2 作为我的信号/插槽框架,希望建立连接、去除 threir、信号发射等是线程安全的。我根本对线程间信号发射不感兴趣。
所以简单的问题是: boost::signals2 线程是否安全,例如,两个或多个线程可以在同一个信号上建立连接?
此外,与 xlobjects 相比, boost::signals2 是否会导致性能损失?这并不重要,因为应用程序并不严重依赖信号/插槽,但我还是想知道。
我正在从 xlobjects 切换到 boost::signals2 作为我的信号/插槽框架,希望建立连接、去除 threir、信号发射等是线程安全的。我根本对线程间信号发射不感兴趣。
所以简单的问题是: boost::signals2 线程是否安全,例如,两个或多个线程可以在同一个信号上建立连接?
此外,与 xlobjects 相比, boost::signals2 是否会导致性能损失?这并不重要,因为应用程序并不严重依赖信号/插槽,但我还是想知道。
boost signals2 是线程安全的。
但是如果由于某种原因您需要额外的性能,并且可以保证单线程访问,signals2 库中有一个虚拟互斥锁,它将比真正的互斥锁快很多。
我相信您需要的关于 boost.signal 中线程安全的所有答案都在文档中(简短回答:是的,boost:signals2 是线程安全的)。关于性能,我想线程安全是有代价的,但只有一种方法可以确定:基准!