pthread_mutex_unlock如何区分线程?

时间:2015-02-10 16:22:25

标签: c++ c linux posix mutex

只有互斥锁的所有者才能解锁它。但是mutex如何区分锁定它的线程? 线程在Linux中有什么独特的功能吗?

2 个答案:

答案 0 :(得分:3)

您可以查看实现源代码以获取详细信息(可以浏览GNU pthread Git存储库中的libc实现here),但它们具有内部使用的不同ID 。您可以使用pthread_self()在应用程序级别查看此信息。它返回一个pthread_t值,该值在给定进程中基于每个线程是唯一的。比较来自不同进程的pthread_t值时,无法保证唯一性。

pthread_t对应的实际类型是实现定义的;它可以是算术(例如积分)类型,或者它可以是结构。因此,除了使用pthread_equal()将它们进行相等比较之外,您无法以可移植的方式对它们进行太多的操作。

答案 1 :(得分:2)

使用线程ID区分它们;