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