假设我们使用linux(C ++)并使用一些线程库来启动线程,我不知道它是什么库。现在我需要使用互斥锁。我可以从某个地方使用互斥锁(例如,boost :: thread,std :: thread,tbb),或者我必须使用由启动线程的同一个库提供的互斥锁类?
据我所知,最好使用同一个库中的互斥锁。但只是好奇......特别是,如果我们假设所讨论的所有这些库都使用pthread作为底层线程库呢?
答案 0 :(得分:3)
从某种意义上说,你实际上并不需要这样做,世界也不会结束。但是,启动该线程的库可能会假设某个为你提供互斥锁的东西不能提供,并且那里肯定会出错。
我怀疑线程库提供了线程抽象而不是互斥体,所以只使用一个库。没有必要混合起来。