我的问题很奇怪,但就是这样。我的问题:是否有任何解释为什么 posix 线程开发人员无法从分离的线程获取退出代码?
我了解什么是可连接线程和分离线程,以及它们有何不同。
为什么 posix 线程开发人员无法从分离线程获取退出代码
因为他们不知道何时,您可能会要求提供此退出代码。
为了提供分离线程的退出代码,该信息必须保存在某处,从而消耗存储空间。由于不可能说“我们不再需要此存储”(因为您可以在将来的任何时候请求此退出代码),因此该存储必须永远存在。
如果您的应用程序在循环中创建和销毁分离的线程,这将导致 POSIX 线程库消耗越来越多的空间,这看起来像内存泄漏。
将此与非分离线程进行对比,在非分离线程中,存储将一直保留,直到您调用
pthread_join()
,之后任何存储都可以安全地重新使用。