2013-08-24 106 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

在單線程應用程序中使用多線程安全代碼始終可以。由於過於謹慎或通過無用的鎖定,您可能會獲得一些開銷,但它會始終有效。我不會擔心性能受到影響 - 它不太可能成爲瓶頸。