boost怎么获取线程id

boost怎么获取线程id,第1张

boost如何获取线程id?

已经创建了一个线程对象,为boost::thread pthread = new boost::thread();

我想获取这个线程对象的id,

就像win32的函数GetCurrentThreadId返回值一样。

阅读文档发现pthread->get_id()能够返回一个boost::thread::id类型的对象

但是这个对象没有办法将其中的thread id打印出来,有谁知道该怎么办吗?

调试窗口能够看到这个threadid的值,但是无法转为int值

native_handle()方法可以

boost::thread class has members native_handle_type and native_handle providing access to the underlying native handle

This native handle can be used to change for example the scheduling

11

XML to PDF by RenderX XEP XSL-FO Formatter, visit us at

Thread

In general, it is not safe to use this handle with operations that can conflict with the ones provided by BoostThread An example of

bad usage could be detaching a thread directly as it will not change the internals of the boost::thread instance, so for example

the joinable function will continue to return true, while the native thread is no more joinable

thread t(fct);

thread::native_handle_type hnd=tnative_handle();

pthread_detach(hnd);

assert(tjoinable());

BOOST线程池,分配任务时如下:

threadpoolschedule(boost::bind(&doWork,&XXX,tab));

每个任务都是一样的,多线程纯粹是为了提高并发

现在的问题是:

1、线程开启多时,处理能力并不一定提升

2、就算只开5个线程,CPU最高都可以到200%,有没办法限制最高占用的CPU?

以上就是关于boost怎么获取线程id全部的内容,包括:boost怎么获取线程id、boost线程池支持绑定cpu、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9412658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存