[cpp]: thread -- with header <syncstream>
一、说明:
1、 【并发编程】thread编程中的同步输出: std::osyncstream // Defined in header <syncstream>
二、程序代码
1 #include <iostream>
2 #include <string>
3 #include <vector>
4 #include <thread>
5 #include <syncstream> // std::osyncstream(); std::osyncstream(std::cout)
6
7
8 int count = 0;
9
10
11 void fun()
12 {
13 // 在多线程中,进行同步输出
14 std::osyncstream(std::cout) << "[os]#\tfun(" << ++count << ")" << std::endl ;
15 }
16
17
18 int main()
19 {
20 std::thread f1(fun) ;
21 std::thread f2(fun) ;
22 std::thread f3(fun) ;
23 std::thread f4(fun) ;
24 std::thread f5(fun) ;
25
26 f1.join() ;
27 f2.join() ;
28 f3.join() ;
29 f4.join() ;
30 f5.join() ;
31
32 return 0 ;
33 }
三、输出内容
1 g++ -std=c++20 -O2 -Wall -pedantic -pthread main.cpp && ./a.out
2
3
4 [os]# fun(2)
5 [os]# fun(1)
6 [os]# fun(3)
7 [os]# fun(4)
8 [os]# fun(5)
四、参考资料
1、 std::basic_osyncstream -- https://en.cppreference.com/w/cpp/io/basic_osyncstream
本文由 lnlidawei 原创、整理、转载,本文来自于【博客园】; 整理和转载的文章的版权归属于【原创作者】; 转载或引用时请【保留文章的来源信息】:https://www.cnblogs.com/lnlidawei/p/17999150