prctl()函数给线程命名

今天看代码看到一个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 实现线程第一次循环时进行命名。

你可能感兴趣的:(Linux,C++)