【发布时间】:2021-04-27 06:25:54
【问题描述】:
情况如下:在程序启动的某个时间,第三方库被初始化。初始化例程产生一个线程。最好命名该线程。显而易见的方法似乎不可用(库 API 中似乎没有提供命名线程或获取其 pthread id 的规定;不过,我们可以有一个 TID)。那么,我们如何才能轻松地命名这个其他线程呢?
【问题讨论】:
情况如下:在程序启动的某个时间,第三方库被初始化。初始化例程产生一个线程。最好命名该线程。显而易见的方法似乎不可用(库 API 中似乎没有提供命名线程或获取其 pthread id 的规定;不过,我们可以有一个 TID)。那么,我们如何才能轻松地命名这个其他线程呢?
【问题讨论】:
一个可行的解决方案如下:
pthread_setname_np(pthread_self(), "SpunOffName");
init_the_library(...);
pthread_setname_np(pthread_self(), "OriginalName");
我们只是重命名主线程,并且该名称由库分拆的任何线程继承。然后我们将主线程重命名为其原始名称(或我们想要的任何其他名称)。
【讨论】: