Boost.Signals不再被主动维护,因此已被弃用。不要将Boost.Signals用于新开发(改为使用Boost.Signals2)。如果你有基于Boost.Signals的代码,它将继续工作,但考虑转移到Boost.Signals2。
http://www.boost.org/users/history/version_1_54_0.html
因此,信号已被弃用。我对此感到困惑。据我所知,Signals2是Signals的多线程版本。但是如果我不需要使用信号的多线程呢?我会得到一些开销吗?我可以使用boost :: signals2 :: trackable吗?在单线程应用程序中使用Signals2会有任何缺点吗?
答案 0 :(得分:2)
据我所知,Signals2是Signals的多线程版本。但 如果我不需要信号的多线程使用怎么办?我会得到一些吗? 开销?
在单线程环境中,使用dummy_mutex
,described here。
我可以使用boost :: signals2 :: trackable吗?
是的,您可以使用它,但请记住它不会是thread-safe approach。因此,如果您最终决定将模块调整为多线程环境,则必须重新设计插槽。
答案 1 :(得分:1)
在单线程应用程序中使用多线程安全代码总是可以的。由于过于小心或无用锁定,您可能会获得一些开销,但它始终有效。我不担心性能上升 - 它不太可能成为瓶颈。