2013-08-24 57 views
1

Boost.Signals不再被主动维护,因此它已被弃用。不要使用Boost.Signals进行新的开发(改为使用Boost.Signals2)。如果你有现有的基于Boost.Signals的代码,它将继续工作,但考虑转向Boost.Signals2。不推荐使用Boost.Signals

http://www.boost.org/users/history/version_1_54_0.html

因此,信号已被弃用。我对此感到困惑。据我所知,Signals2是Signals的多线程版本。但是如果我不需要多线程使用信号呢?我会得到一些开销吗?我可以使用boost :: signals2 :: trackable吗?在单线程应用程序中使用Signals2会有什么不利吗?

回答

2

据我所知,Signals2是Signals的多线程版本。但是 如果我不需要多线程使用信号呢?我会得到一些 的开销?

在单线程环境下使用dummy_mutex,如described here

我可以使用boost :: signals2 :: trackable吗?

是的,您可以使用它,但请记住它不会是thread-safe approach。所以如果你最终决定调整你的模块到一个多线程环境,你将不得不重新设计你的插槽。

1

在单线程应用程序中使用多线程安全代码始终可以。由于过于谨慎或通过无用的锁定,您可能会获得一些开销,但它会始终有效。我不会担心性能受到影响 - 它不太可能成为瓶颈。