3
我創建一個共享庫,以及創建構造函數中的線程它運行它,直到調用析構函數的類。這個類的所有方法都是線程安全的。事情是這樣的:在共享庫中創建線程是不好的做法嗎?
class NetworkRPCConnection {
std::thread t;
public:
NetworkRPCConnection() : t([](){maintain_connection();}) {}
~NetworkRPCConnection(){close_connection(); t.join();}
}
這工作得很好,但它是不好的做法,在共享庫中創建一個線程?在API文檔中值得一提的是,還是隱藏這個實現細節更好?
絕對在API中記錄它。 – randomusername 2014-12-04 21:05:05
那麼,我讀的所有書籍都說,實現細節應該隱藏在文檔之外。爲什麼開發人員想知道,如果庫使用線程? – 2014-12-04 21:08:02
開發人員需要知道,因爲他們可能會使用線程,如果別的東西正在使用它們,那麼這對資源來說就更加緊張。另外,線程通常需要特殊的構建配置和選項才能融入到構建系統中。 – randomusername 2014-12-04 21:13:34