首页 > 其他分享 >[cpp]: thread -- with header <syncstream>

[cpp]: thread -- with header <syncstream>

时间:2024-01-31 14:26:08浏览次数:22  
标签:std thread -- fun osyncstream cpp include os

[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

 

标签:std,thread,--,fun,osyncstream,cpp,include,os
From: https://www.cnblogs.com/lnlidawei/p/17999150

相关文章

  • gulp : 无法将“gulp”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名
    https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=gulp%20%3A%20%E6%97%A0%E6%B3%95%E5%B0%86%E2%80%9Cgulp%E2%80%9D%E9%A1%B9%E8%AF%86%E5%88%AB%E4%B8%BA%20cmdlet%E3%80%81%E5%87%BD%E6%95%B0%E3%80%81%E8%84%9A%E6%9C%AC%E6%96......
  • tomcat启动时报错:Caused by: java.lang.IllegalArgumentException: AJP连接器配置secr
    31-Jan-202414:01:13.812信息[main]org.apache.coyote.AbstractProtocol.start开始协议处理句柄["http-nio-8080"]31-Jan-202414:01:13.818严重[main]org.apache.catalina.core.StandardService.startInternalFailedtostartconnector[Connector[AJP/1.3-8009]]......
  • aws ebs 报无权限错误
    awseks 创建ebs的pvc时报以下错误:WarningProvisioningFailed9m28sebs.csi.aws.com_ebs-csi-controller-79d7954f96-thd4s_9a0470ef-ef71-4c55-8a8c-2be08fdc17d9failedtoprovisionvolumewithStorageClass"gp2":rpcerror:code=Internaldesc=Couldnotc......
  • MySQL Shell 8.0.32 for GreatSQL编译二进制包
    MySQLShell8.0.32forGreatSQL编译二进制包构建MySQLShell8.0.32forGreatSQL0.写在前面之前已经写过一篇前传MySQLShell8.0.32forGreatSQL编译安装,最近再次编译MySQLShell二进制包时,发现了一些新问题,因此重新整理更新本文档。1.几处新问题这次编译MySQLShe......
  • nginx代理服务器
    一、Nginx是什么?Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网......
  • 手撸代码#1:从0开始的LeNet5(PyTorch框架)
    摘要:本文介绍了如何从0开始构建LeNet5去识别手写数字(在MNIST数据集上)。代码包括三大部分:网络结构部分、训练部分、测试部分。在编LeNet5部分代码之前,本文详细地梳理了LeNet5的结构,对于初学者十分友好。训练和测试部分也都有详细的代码说明。在实现LeNet5手写数字识别的同时,......
  • 模拟SPI
    注:参考各类网上博客,出处已不清,若有网友指出,感激不尽,并尽快进行添加出处。C文件 #include"softspi.h"#ifdefSOFT_SPIsspi_tsspi;#endifvoidsoftspi_init(sspi_t*spi_periph){  spi_periph->mod=PL_HIGH_PH_2EDGE;//PL_HIGH_PH_2EDGE   //PL_LOW_P......
  • 对于类对象的size
    对于类来说,可以使用sizeof运算符来计算其占用的内存空间大小。sizeof运算符返回的是一个对象或类型所占用的字节数。当类的成员变量是固定的、非动态申请内存分配的时候,可以通过sizeof运算符来计算类的大小。sizeof运算符会计算类的所有成员变量的大小,并加上任何可能的填充......
  • 青海省投资集团部署智和信通运维平台,实现外网设备集中监管
    青海省投资集团是国有控股企业,是青海省财政支柱企业,公司主要业务范围是在电力、煤炭、有色金属、矿产资源、房地产开发及金融等领域进行投资。随着其信息化建设的不断开展和业务的不断扩充,IT设施出现异常运行而造成的损失和后果就愈发严重。 项目现状随着集团公司IT规模的扩大,......
  • 如何在Visual Studio新C++项目中调用之前配置过的库?
      本文介绍在VisualStudio软件中调用C++各种配置、编译完毕的第三方库的方法。  在撰写C++代码时,如果需要用到他人撰写的第三方库(例如地理数据处理库GDAL、矩阵运算库Armadillo等),并不能像Python等语言那样,安装好库后直接在不同代码文件中使用;而是需要每一次新建一个代码文件......