当前位置: 首页 > news >正文

做网站杭州傲视信息淘宝网站建设的详细策划

做网站杭州傲视信息,淘宝网站建设的详细策划,个人免费发布信息,wordpress模板大前端<syncstream>是C20中新增加的头文件&#xff0c;提供了对同步输出流的支持&#xff0c;即在多个线程中可安全地进行输出操作&#xff0c;此头文件是Input/Output库的一部分。包括&#xff1a; 1.std::basic_syncbuf&#xff1a;是std::basic_streambuf的包装器(wrapper)&…

      <syncstream>是C++20中新增加的头文件,提供了对同步输出流的支持,即在多个线程中可安全地进行输出操作,此头文件是Input/Output库的一部分。包括:

      1.std::basic_syncbuf:是std::basic_streambuf的包装器(wrapper),它将输出累积在其自己的内部缓冲区中,并在销毁时以及明确请求时将其全部内容自动传输到包装的缓冲区,以便它们显示为连续的字符序列。此类模板主要用于创建与多线程程序无缝协作的自定义流类。如果多个线程试图同时写入同一个流,std::basic_syncbuf将确保每个线程的输出都以正确的顺序写入流,而不会出现任何交错。

using syncbuf  = basic_syncbuf<char>;
using wsyncbuf = basic_syncbuf<wchar_t>;

      2.std::basic_osyncstream:是std::basic_syncbuf的便捷包装器。它提供了一种机制来同步写入同一流的线程。

using osyncstream  = basic_osyncstream<char_t>;
using wosyncstream = basic_osyncstream<wchar_t>;

      测试代码如下:

namespace {void func1(int id, std::ostream& sync_out)
{std::osyncstream sync_stream(sync_out);sync_stream << "thread " << id << " is running" << std::endl;
}void func2(int id, std::ostream& out)
{out << "thread " << id << " is running" << std::endl;
}void sync(std::ofstream& file_out)
{std::syncbuf sync_buf(file_out.rdbuf());std::ostream sync_out(&sync_buf);constexpr int num_threads{ 10 };std::vector<std::thread> threads;for (int i = 0; i < num_threads; ++i)threads.emplace_back(func1, i, std::ref(sync_out));for (auto& t : threads)t.join();
}void common(std::ofstream& file_out)
{constexpr int num_threads{ 10 };std::vector<std::thread> threads;for (int i = 0; i < num_threads; ++i)threads.emplace_back(func2, i, std::ref(file_out));for (auto& t : threads)t.join();
}} // namespaceint test_syncstream()
{
#ifdef _MSC_VERstd::ofstream file_out1("../../../testdata/output1.txt");std::ofstream file_out2("../../../testdata/output2.txt");
#elsestd::ofstream file_out1("testdata/output1.txt");std::ofstream file_out2("testdata/output2.txt");
#endifif (!file_out1 || ! file_out2) {std::cerr << "fail to open file for writing" << std::endl;return -1;}sync(file_out1);common(file_out2);file_out1.close();file_out2.close();return 0;
}

      执行结果如下图所示:每次输出并不完全一致:output2.txt中输出是乱的,而output1.txt中的输出是正常的

      GitHub:https://github.com/fengbingchun/Messy_Test

http://www.yayakq.cn/news/318511/

相关文章:

  • 电商网站建设课件视频背景网站
  • 百度建设网站软件工程师资格证
  • 企业网站类型在ps做网站分辨率96可以吗
  • 建站科技公司php企业网站开发实验总结
  • 南漳网站设计做网站一般都用什么字体
  • 海口分类信息网站广告关键词排名
  • 网站建设企业网站界面设计头像制作免费生成器
  • 做视频采集网站犯法站长工具国产
  • 建设银行可以查房贷的网站做淘宝客的网站需要备案吗
  • 影音先锋资源网站建设网站开发会议议程范文
  • 企业网站建设费用会计科目seo关键词排名优化
  • 亳州公司做网站找项目做区域代理
  • 公司域名备案怎么弄衡阳网站优化
  • 松江品划网络做网站阿里云网站建设考试题目
  • 吉林网站建设哪家有灰色行业关键词优化
  • 青岛红岛做网站花儿直播免费视频观看
  • 网站开发合同属于知识产权类吗要怎么做网络推广
  • 服务营销案例小程序定制 seo营销
  • 哪个做简历的网站可以中英的推广型网站建设
  • 门户网站是用户上网的第一入口百度移动端关键词优化
  • 东莞网站系统找哪里南通企业网站建设公司
  • 网站开发背景知识贵阳网站建设公司哪家好
  • 淄博微网站开发表白网站生成器
  • 建个人网站做导购怎么备案网络营销课程期末总结
  • 网站系统管理员模块石家庄网站开发哪家好
  • 门户型网站建设地方门户网站模板
  • 用html5做网站的优点济南建设网官网首页
  • 赌场网站建站wordpress网页怎么上传
  • 工信部门备案网站漫画网站开发
  • 企业铭做网站成都地铁建设分公司网站