我一直在尝试通过一些经典问题来学习信号量和线程同步,例如生产者-消费者问题和餐饮哲学家的问题。
在阅读用 C 实现的上述问题的解决方案时,我偶然发现了这两种解决方案中都存在的这段代码段
pthread_join(thread_id, NULL);
据我所知,
信号量的实现使得在给定时间只有一个进程可以访问程序的一部分
但pthread_join
做同样的事情,不是吗?它延迟一个线程的执行,直到另一个线程完成执行。
那么即使实现了信号量,为什么还要添加这个功能呢?
我一直在尝试通过一些经典问题来学习信号量和线程同步,例如生产者-消费者问题和餐饮哲学家的问题。
在阅读用 C 实现的上述问题的解决方案时,我偶然发现了这两种解决方案中都存在的这段代码段
pthread_join(thread_id, NULL);
据我所知,
信号量的实现使得在给定时间只有一个进程可以访问程序的一部分
但pthread_join
做同样的事情,不是吗?它延迟一个线程的执行,直到另一个线程完成执行。
那么即使实现了信号量,为什么还要添加这个功能呢?