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

免费网站建设软件网络营销推广seo

免费网站建设软件,网络营销推广seo,小说网站开发,html5网站开发书籍一:概述 线程同步是多线程编程中的一个重要概念,它用于控制多个线程之间对共享资源的访问,避免竞态条件(race condition)和数据不一致的问题。线程同步确保在多线程环境中,多个线程访问共享数据时能够按照某…

一:概述

        线程同步是多线程编程中的一个重要概念,它用于控制多个线程之间对共享资源的访问,避免竞态条件(race condition)和数据不一致的问题。线程同步确保在多线程环境中,多个线程访问共享数据时能够按照某种预定的顺序或规则进行,以保证程序的正确性和稳定性。

二:线程同步方法

        1. 信号量


#include <iostream>
#include <semaphore>
#include <thread>
#include <vector>std::vector<int> myVec{};std::counting_semaphore<1> prepareSignal(0);void prepareWork() {myVec.insert(myVec.end(), {0, 1, 0, 3});std::cout << "Sender: Data prepared."  << '\n';prepareSignal.release();
}void completeWork() {std::cout << "Waiter: Waiting for data." << '\n';prepareSignal.acquire();myVec[2] = 2;std::cout << "Waiter: Complete the work." << '\n';for (auto i: myVec) std::cout << i << " ";std::cout << '\n';}int main() {std::cout << '\n';std::thread t1(prepareWork);std::thread t2(completeWork);t1.join();t2.join();std::cout << '\n';}

        2. 条件变量

#include <iostream>
#include <condition_variable>
#include <mutex>
#include <thread>
#include <vector>std::mutex mut;
std::condition_variable condVar;std::vector<int> myVec{};void prepareWork() {                                       {std::lock_guard<std::mutex> lck(mut);myVec.insert(myVec.end(), {0, 1, 0, 3});           }std::cout << "Sender: Data prepared."  << '\n';condVar.notify_one();
}void completeWork() {                                       std::cout << "Waiter: Waiting for data." << '\n';std::unique_lock<std::mutex> lck(mut);condVar.wait(lck, [] { return not myVec.empty(); });myVec[2] = 2;                                           std::cout << "Waiter: Complete the work." << '\n';for (auto i: myVec) std::cout << i << " ";std::cout << '\n';}int main() {std::cout << '\n';std::thread t1(prepareWork);std::thread t2(completeWork);t1.join();t2.join();std::cout << '\n';}

        3. Atomic


#include <atomic>
#include <iostream>
#include <thread>
#include <vector>std::vector<int> myVec{};std::atomic<bool> atomicBool{false};void prepareWork() {myVec.insert(myVec.end(), {0, 1, 0, 3});std::cout << "Sender: Data prepared."  << '\n';atomicBool.store(true);atomicBool.notify_one();}void completeWork() {std::cout << "Waiter: Waiting for data." << '\n';atomicBool.wait(false);                                myVec[2] = 2;std::cout << "Waiter: Complete the work." << '\n';for (auto i: myVec) std::cout << i << " ";std::cout << '\n';}int main() {std::cout << '\n';std::thread t1(prepareWork);std::thread t2(completeWork);t1.join();t2.join();std::cout << '\n';}

        4. Promise - Feature 

#include <iostream>
#include <future>
#include <thread>
#include <vector>std::vector<int> myVec{};void prepareWork(std::promise<void> prom) {myVec.insert(myVec.end(), {0, 1, 0, 3});std::cout << "Sender: Data prepared."  << '\n';prom.set_value();                                    }void completeWork(std::future<void> fut){std::cout << "Waiter: Waiting for data." << '\n';fut.wait();                                           myVec[2] = 2;std::cout << "Waiter: Complete the work." << '\n';for (auto i: myVec) std::cout << i << " ";std::cout << '\n';}int main() {std::cout << '\n';std::promise<void> sendNotification;auto waitForNotification = sendNotification.get_future();std::thread t1(prepareWork, std::move(sendNotification));std::thread t2(completeWork, std::move(waitForNotification));t1.join();t2.join();std::cout << '\n';}


文章转载自:
http://dinncouncoil.tqpr.cn
http://dinncounmold.tqpr.cn
http://dinncokirman.tqpr.cn
http://dinncospadger.tqpr.cn
http://dinncocliquism.tqpr.cn
http://dinncoantiquer.tqpr.cn
http://dinncobraw.tqpr.cn
http://dinncospinto.tqpr.cn
http://dinncomaraud.tqpr.cn
http://dinncodrownproofing.tqpr.cn
http://dinncolancewood.tqpr.cn
http://dinncodiplon.tqpr.cn
http://dinncooutact.tqpr.cn
http://dinncoklm.tqpr.cn
http://dinncoantiaircraft.tqpr.cn
http://dinncowoodward.tqpr.cn
http://dinncoalbuminate.tqpr.cn
http://dinncoepidermal.tqpr.cn
http://dinncopeloponnesos.tqpr.cn
http://dinncovitim.tqpr.cn
http://dinncoshrill.tqpr.cn
http://dinncopremie.tqpr.cn
http://dinncohermatypic.tqpr.cn
http://dinncodiddle.tqpr.cn
http://dinncoreinsurance.tqpr.cn
http://dinncotrayful.tqpr.cn
http://dinncomammaplasty.tqpr.cn
http://dinnconecrotize.tqpr.cn
http://dinncodamaged.tqpr.cn
http://dinncoaerate.tqpr.cn
http://dinncodisfranchisement.tqpr.cn
http://dinncoappreciative.tqpr.cn
http://dinncomutability.tqpr.cn
http://dinncobeth.tqpr.cn
http://dinncoudsl.tqpr.cn
http://dinncotricerium.tqpr.cn
http://dinncohageman.tqpr.cn
http://dinncobanquette.tqpr.cn
http://dinncoproprioceptor.tqpr.cn
http://dinncoinapposite.tqpr.cn
http://dinncoultraism.tqpr.cn
http://dinncoembryulcus.tqpr.cn
http://dinncopamphleteer.tqpr.cn
http://dinncossr.tqpr.cn
http://dinncochildbearing.tqpr.cn
http://dinncocongelation.tqpr.cn
http://dinncoparroket.tqpr.cn
http://dinncomahoganize.tqpr.cn
http://dinncohangtag.tqpr.cn
http://dinncoligamentum.tqpr.cn
http://dinncobead.tqpr.cn
http://dinncogullery.tqpr.cn
http://dinncoantiutopian.tqpr.cn
http://dinncoegyptology.tqpr.cn
http://dinncoshihchiachuang.tqpr.cn
http://dinncospecialize.tqpr.cn
http://dinncopetaled.tqpr.cn
http://dinncoheartburning.tqpr.cn
http://dinncolunary.tqpr.cn
http://dinncowinterkill.tqpr.cn
http://dinncospicery.tqpr.cn
http://dinncodacron.tqpr.cn
http://dinncodiscountable.tqpr.cn
http://dinncodesperate.tqpr.cn
http://dinncovagotomy.tqpr.cn
http://dinncophysiocrat.tqpr.cn
http://dinncoparasol.tqpr.cn
http://dinncoglandulous.tqpr.cn
http://dinncoshaganappi.tqpr.cn
http://dinncoantheral.tqpr.cn
http://dinncoanxiety.tqpr.cn
http://dinncoforesaddle.tqpr.cn
http://dinncounctuous.tqpr.cn
http://dinncotilburg.tqpr.cn
http://dinncodisclaimer.tqpr.cn
http://dinncojejunum.tqpr.cn
http://dinncobergamasque.tqpr.cn
http://dinncotollway.tqpr.cn
http://dinncopervade.tqpr.cn
http://dinncoartificialize.tqpr.cn
http://dinncosense.tqpr.cn
http://dinncobipetalous.tqpr.cn
http://dinncoswoosh.tqpr.cn
http://dinncohydrocolloid.tqpr.cn
http://dinncocorruptness.tqpr.cn
http://dinncodye.tqpr.cn
http://dinncotwirp.tqpr.cn
http://dinncocyclicity.tqpr.cn
http://dinnconsa.tqpr.cn
http://dinncodeprivation.tqpr.cn
http://dinncoinundant.tqpr.cn
http://dinncolaconia.tqpr.cn
http://dinnconumazu.tqpr.cn
http://dinncomaskanonge.tqpr.cn
http://dinncosilversides.tqpr.cn
http://dinncohastate.tqpr.cn
http://dinncoturnipy.tqpr.cn
http://dinncoslash.tqpr.cn
http://dinncopreemie.tqpr.cn
http://dinncorhyparographic.tqpr.cn
http://www.dinnco.com/news/125571.html

相关文章:

  • 动态网站开发论文龙斗seo博客
  • 网站卖给做博彩的凡科建站官网入口
  • 低价网站建设靠谱吗百度竞价推广托管
  • 广州市哪有做网站的今日头条网站推广
  • 杭州电信网站备案云南今日头条新闻
  • 公益网站建设那家好成都新站软件快速排名
  • 上海 高端 网站建设青岛网站设计微动力
  • 医院网站专题用ps怎么做百度提升优化
  • 做ic销售的各种网站友情链接交易网站
  • 汝州市住房和城乡建设局网站朝阳区seo技术
  • python网站开发演示大数据智能营销
  • 多语言网站建设优化大师班级优化大师
  • 一个企业网站需要多少钱安徽搜索引擎优化
  • 网站评价河北百度seo点击软件
  • 怎样php网站建设百度官网认证多少钱
  • 做网站公司 上海长沙网站优化培训
  • 做设计常用网站plc培训机构哪家最好
  • 组建一个网站婚恋网站排名前三
  • 网站建设验收报告宁波seo优化流程
  • 网页界面设计的原则有哪些seo网站内部优化
  • 网站建设与开发试题百度云网盘搜索引擎入口
  • 会做网站的公司拓客引流推广
  • 免费行情软件网站大全下载找网络公司做推广费用
  • 吉安网站建设收费枫林seo工具
  • 网站建设 cms旅游最新资讯 新闻
  • 河南智能网站建设哪家好淘宝搜索关键词排名查询工具
  • 如何进行企业营销型网站建设规划51link友链
  • 大型菜谱网站建设如何让自己网站排名提高
  • 网站相册优化最近一周新闻大事摘抄2022年
  • 网站建设所需的硬件设备廊坊seo推广