C++设置线程名字

C++使用std:thread创建线程,其底层实现还是采用了NTPL的thread库,所以可以调用thread库的pthread_setname_np函数设置线程名字。

#include <iostream>
#include <thread>
using namespace std;

void t1()  //普通的函数,用来执行线程
{
    for (int i = 0; i < 20; ++i)
    {
        cout << "t1111\n";
    }
    while(1);
}
void SetThreadName(std::thread* thread, const char* threadName)
{
   auto handle = thread->native_handle();//获取原生句柄
   pthread_setname_np(handle,threadName);
}

int main()
{
    thread th1(t1);  //实例化一个线程对象th1,使用函数t1构造,然后该线程就开始执行了(t1())
	SetThreadName(&th1,"hello");
    cout << "here is main\n\n";
    th1.join();
    return 0;
}

编译命令:
g++ g.cc -lpthread -std=c++11
运行:./a.out
ubuntu下查看线程方法:top,然后输入大写H。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页
实付 39.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值