gpt4 book ai didi

linux - 从单线程应用程序调用pthread_self()

转载 作者:行者123 更新时间:2023-12-03 13:23:22 24 4
gpt4 key购买 nike

在Linux上,ps -Lf将在LWP列中显示线程ID,并在NLWP列中显示线程数。任何单线程进程将具有相同的PIDLWP值。
在单线程应用程序上,pthread_self()应该返回什么?最初,我期望它的值应与执行此调用的进程ID相同,但结果不同。然后,我阅读了man pthread_selfman gettid,并了解到pthread_self()返回的值与gettid()结果不同。
因此,我什至可以信任在非线程环境(进程)中执行的pthread_self()输出吗?

最佳答案

pthread_self被定义为返回调用线程的ID,而不管程序是否
是多线程还是单线程。
如您所见,pthread_self()的返回值与Linux中的LWP(gettid)不同,因此它在流程之外没有任何意义; pthread_t
不透明的类型。相关:The thread ID returned by pthread_self() is not the same thing as the kernel thread ID returned by a call to gettid(2)
由于单线程程序中的pthread_t没有太多实际用途,因此它的实用程序非常有限。例如,您可以在pthread_setschedparam中使用。
但是,如果您询问是否在单线程程序中返回任何有效值,那么答案是肯定的。

关于linux - 从单线程应用程序调用pthread_self(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63383172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com