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++11)  
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
(C++20)
(C++20)
未来体
(C++11)
(C++11)
(C++11)
(C++11)
安全回收
(C++26)
(C++26)
风险指针





原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中弃用)
(C++11)(C++20 中弃用)
内存定序
原子操作的自由函数
原子标志的自由函数
 
 
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 <chrono>
#include <iostream>
#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