operator<<(std::thread::id)

来自cppreference.com
< cpp‎ | thread‎ | thread‎ | id
 
 
并发支持库
线程
(C++11)
(C++20)
(C++20)
this_thread 命名空间
(C++11)
(C++11)
(C++11)
原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中弃用)
(C++11)(C++20 中弃用)
原子操作的自由函数
原子标志的自由函数
内存序
互斥
(C++11)
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
(C++20)
(C++20)
future
(C++11)
(C++11)
(C++11)
(C++11)
 
 
std::thread::id
成员函数
非成员函数
(C++20 前)(C++20 前)(C++20 前)(C++20 前)(C++20 前)(C++20)
operator<<
辅助类
 
在标头 <thread> 定义
template< class CharT, class Traits >

std::basic_ostream<CharT,Traits>&

    operator<<( std::basic_ostream<CharT,Traits>& ost, std::thread::id id );
(C++11 起)

写线程标识符 id 的文本表示到输出流 ost

若二个线程标识符表示相等,则它们拥有等同的文本表示;若它们比较不相等,则其表示有别。

参数

ost - 要插入数据的输出流
id - 线程标识符

返回值

ost

异常

可能会抛出由实现定义的异常。

示例

#include <iostream>
#include <chrono>
#include <thread>
using namespace std::chrono;
 
int main()
{
    std::thread t1([]{ std::this_thread::sleep_for(256ms); });
    std::thread t2([]{ std::this_thread::sleep_for(512ms); });
 
    std::clog << t1.get_id() << '\n' << t2.get_id() << '\n';
 
    t1.join(); t2.join();
}

可能的输出:

141592653589793
141421356237309