2014-03-05 128 views
3

假设我们在Linux(C++)上,并使用一些线程库来启动线程,我不知道它是什么库。现在我需要使用互斥锁。我是否可以在某处使用互斥锁(例如,boost :: thread,std :: thread,tbb),或者我必须使用由启动线程的相同库提供的互斥锁类?无论线程库如何,我们可以使用Mutex类吗?

我知道最好是使用来自同一个库的互斥锁。但只是好奇......尤其是,如果我们假设所讨论的所有这些库都使用pthread作为底层线程库呢?

+1

我建议留在一个图书馆。提升或标准。混合起来根本没有任何意义。 – Paranaix

+0

坚持一个图书馆。大多数情况下,无论是提升,stl还是别的东西都是偏好...... – AJG85

回答

3

你并不需要从某种意义上说,你可以做到这一点,世界将不会结束。然而,启动线程的库可能会假设一个给你的互斥体没有提供的东西,那里的东西肯定会出错。

我怀疑一个线程库提供了线程抽象,而不是互斥量,所以只使用一个库。没有真正需要混合的东西了。

相关问题