我目前正在学习操作系统和并发性,我的任务是在c中使用pthreads。
在尝试理解和使用pthreads之后,有一些我不太了解的事情。
如果我创建两个单独的pthreads(根据我的理解,两个进程),两个线程如何相等(pthread_equal)?或者这是什么意思?
谢谢!
答案 0 :(得分:2)
如果我创建两个单独的pthreads(根据我的理解,有两个进程),..
不。线程不是进程。 (线程可以使用引擎下的进程来实现 - 但就用户程序而言,它仍然是一个线程,并且应该对它们进行处理)。
两个线程如何相等(pthread_equal)?或者这是什么意思?
这意味着它是相同的线程,并由pthread_equal()
报告,它比较给定的线程ID(pthread_t
)是否相等。
使用==
进行直接比较是不可能的,因为pthread_t
是一种opaque类型,比较线程ID的唯一方法是使用pthread_equal()
API。
顺便说一句,不同进程中的两个线程可能具有相同的ID(pthread_t
)。