Linux线程ID的回收策略是什么?Linux线程ID回收策略
除非新的PID获得最大限制并被重新绑定,否则Linux进程标识不会立即重新使用。
当我使用pthread_self()获取线程ID时,我得到了像1028,1034这样的TID。我想这是进程中线程的内部“序列号”。所以我想用PID回收策略这样的线程ID回收策略会更合适。 但是我不太确定Linux pthread实现是否属实。
Linux线程ID的回收策略是什么?Linux线程ID回收策略
除非新的PID获得最大限制并被重新绑定,否则Linux进程标识不会立即重新使用。
当我使用pthread_self()获取线程ID时,我得到了像1028,1034这样的TID。我想这是进程中线程的内部“序列号”。所以我想用PID回收策略这样的线程ID回收策略会更合适。 但是我不太确定Linux pthread实现是否属实。
螺纹linux进程具有
getpid
gettid
pthread_self
等。如果您试图实施“回收策略”或为什么您认为需要这样做,则无法从您的问题中确定。
编辑
作为一个无聊的好奇,你可以看看通过Linux并行线程代码,但在技术上你没有理由去关心。 POSIX规范基本上只是说线程ID在进程中保证是唯一的,在线程死后可以自由重用。
尽管实现可能具有在系统中唯一的线程ID,但应用程序应该只假定线程ID在单个进程中可用且唯一。调用IEEE Std 1003.1-2001的本卷中定义的任何函数并将来自另一个进程的线程的线程ID作为参数传递的效果未指定。如果在线程终止时使用detachstate属性设置为PTHREAD_CREATE_DETACHED或者为该线程调用了pthread_detach()或pthread_join(),则符合实现可以在线程终止后自由重用线程ID。
我不是试图实施一个TID“回收策略”,只是徘徊,如果一个线程ID将立即重用或在新的TID获得最大限制并被重新绕回后。请原谅我的泳池英语。 –
我更新了答案。作为一个实际的问题,我从来没有见过一个pthreads实现,立即重用线程ID,但我不能说我一直在积极寻找它。 – Duck
我将检查Linux上的pthread实现。坦克。 –
你好,欢迎来到[StackOverflow](http://stackoverflow.com)。请花一些时间阅读 [帮助页面](http://stackoverflow.com/help),尤其是名为[“我可以问什么问题?”](http://stackoverflow.com/help /主题)和[“我应该避免问什么类型的问题?”](http://stackoverflow.com/help/dont-ask)。更重要的是,请阅读[Stack Overflow问题清单](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)。您可能还想了解[SSCCE](http://www.sscce.org/)是什么。 – hivert