1

我的任务是创建一个复制功能的用户级线程库pthread(完全披露:这是针对操作系统课程)。但是,我不清楚当线程已经退出时如何交互pthread_join()pthread_exit()

特别是,手册页指出:

pthread_join() 函数等待线程指定的线程终止。如果该线程已经终止,则 pthread_join() 立即返回。

这是否保证即使我创建了数百万个线程,它们的结果也可用于一次连接?否则,我可以期望结果保留多长时间?

我不是在寻找有关如何实现它的建议(这是最有趣的!),我只是想在我深入研究之前确定行为。

4

1 回答 1

3

没有时间限制,只要进程本身处于活动状态以使其可用于连接,实现就必须保持“返回值”。

POSIX 定义pthread_exit简单地说:

pthread_exit()函数应终止调用线程并使该值value_ptr可用于与终止线程的任何成功连接。

加入是在退出之前启动还是在几年后启动,或者是否只有一个额外的线程或数百个线程都无关紧要。

于 2014-01-17T06:53:57.573 回答