今天看代码看到一个prctl()函数函数,百度了一下才知道是给线程命名(当然还有其他的功能)。下面简述函数的用法:
1.包含的头文件为 sys/prctl.h;
2.函数用法:int 用法:prctl(PR_SET_NAME , (char*)name);
3.PR_SET_NAME表示给线程命名,第二个参数是进程名字符串,长度至多16字节
下面看使用示例:
void Cxxxxxxx::ThreadCycleFunc(void)
{
static int once = 1;
if(1 == once)
{
prctl(PR_SET_NAME, "Taskxxxxxx");//设置线程名
once = 0;
}
unsigned long long ullTime = GetSystemTime();
if( (ullTime - m_Lasttime1s) > 1000 )
{
doSomething1();
}
if( (ullTime - m_Lasttime300ms) > 300 )
{
doSomething2();
}
usleep(100 * 1000); /* 延时 100ms */
}
这里的ThreadCycleFunc是线程函数,通过静态变量once 实现线程第一次循环时进行命名。