1

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 会有什么缺点吗?

4

2 回答 2

2

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

在单线程环境中使用dummy_mutex,如此处所述

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

是的,您可以使用它,但请记住,它不是线程安全的方法。因此,如果您最终决定将模块调整为多线程环境,则必须重新设计插槽。

于 2013-08-25T14:36:08.343 回答
1

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

于 2013-08-24T09:42:05.760 回答