use*_*710 3 c++ multithreading c++11 c++14
std::thread::get_id()为您提供了一个唯一标识给定线程的实现定义值,但对我来说有趣的是,有一个专用类型thread::id,这种类型是否在标准库中的任何位置使用?
A thread::id是在某个地方使用还是在你知道的任何界面中使用?这种类型的AFAIK无处使用,因此它目前看起来很无用.
Yak*_*ont 10
这种用户定义类型的目的是使实现者更容易.
在许多情况下,您将在现有代码库,OS系统等之上实现C++线程.这些可能具有不同类型的线程标识.
使用该类型,C++ std实现更有可能直接公开底层线程标识值,或者只需最少的修改.
知道你所使用的线程在客户端的许多情况下是非常有用的,并且在没有来自系统的id的情况下实现它是复杂的.
std::thread::id可以进行排序,比较(以完全有序的方式,具有合理的相等性)和std::hashed,所有这些对于std库都是有用的.它们可以被复制(平凡地)并且不带参数构造(对于不代表线程的id).它们可以通过转换为字符串ostream <<,唯一的保证是除了两个==id 之外,结果字符串永远不会相同.
除此之外的任何操作都是未定义的.但是,实现可以thread_id基本上是指针,或数组中的无符号整数索引,或许多不同的底层实现之一.然而,访问此类信息的实现正在执行完全依赖于实现的操作.
| 归档时间: |
|
| 查看次数: |
558 次 |
| 最近记录: |