只有互斥锁的所有者才能解锁它。但是mutex如何区分锁定它的线程? 线程在Linux中有什么独特的功能吗?
答案 0 :(得分:3)
您可以查看实现源代码以获取详细信息(可以浏览GNU pthread
Git存储库中的libc
实现here),但它们具有内部使用的不同ID 。您可以使用pthread_self()
在应用程序级别查看此信息。它返回一个pthread_t
值,该值在给定进程中基于每个线程是唯一的。比较来自不同进程的pthread_t
值时,无法保证唯一性。
pthread_t
对应的实际类型是实现定义的;它可以是算术(例如积分)类型,或者它可以是结构。因此,除了使用pthread_equal()
将它们进行相等比较之外,您无法以可移植的方式对它们进行太多的操作。
答案 1 :(得分:2)
使用线程ID区分它们;