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

济南模版网站网络快速排名优化方法

济南模版网站,网络快速排名优化方法,企业查询网站有哪些,石狮网站建设报价一:概述 线程同步是多线程编程中的一个重要概念,它用于控制多个线程之间对共享资源的访问,避免竞态条件(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://wouldst.hkpn.cn
http://monaco.hkpn.cn
http://neocolonialism.hkpn.cn
http://paternity.hkpn.cn
http://susan.hkpn.cn
http://mountainside.hkpn.cn
http://monochrome.hkpn.cn
http://helices.hkpn.cn
http://sallowy.hkpn.cn
http://contagion.hkpn.cn
http://krete.hkpn.cn
http://dishonorable.hkpn.cn
http://eld.hkpn.cn
http://sivaite.hkpn.cn
http://suffocation.hkpn.cn
http://tardo.hkpn.cn
http://emp.hkpn.cn
http://verst.hkpn.cn
http://problematical.hkpn.cn
http://lamed.hkpn.cn
http://treacle.hkpn.cn
http://infestation.hkpn.cn
http://donau.hkpn.cn
http://carnotite.hkpn.cn
http://lustral.hkpn.cn
http://co2.hkpn.cn
http://larviparous.hkpn.cn
http://systematizer.hkpn.cn
http://shinsplints.hkpn.cn
http://condyloma.hkpn.cn
http://calzone.hkpn.cn
http://gondolier.hkpn.cn
http://chafing.hkpn.cn
http://calomel.hkpn.cn
http://repairer.hkpn.cn
http://hypodorian.hkpn.cn
http://infrequence.hkpn.cn
http://disinflation.hkpn.cn
http://clerkess.hkpn.cn
http://ketolytic.hkpn.cn
http://belletrism.hkpn.cn
http://dihydrotachysterol.hkpn.cn
http://jacksonian.hkpn.cn
http://escaut.hkpn.cn
http://compluvium.hkpn.cn
http://enactive.hkpn.cn
http://scum.hkpn.cn
http://hispanism.hkpn.cn
http://smellage.hkpn.cn
http://goalpost.hkpn.cn
http://embroilment.hkpn.cn
http://clasp.hkpn.cn
http://metalloid.hkpn.cn
http://mullein.hkpn.cn
http://lutrine.hkpn.cn
http://cryptonym.hkpn.cn
http://forecourt.hkpn.cn
http://ely.hkpn.cn
http://ovonic.hkpn.cn
http://riksmal.hkpn.cn
http://kabala.hkpn.cn
http://foreignism.hkpn.cn
http://almah.hkpn.cn
http://afrikaner.hkpn.cn
http://differential.hkpn.cn
http://keelivine.hkpn.cn
http://generous.hkpn.cn
http://naturalism.hkpn.cn
http://remuneration.hkpn.cn
http://ficelle.hkpn.cn
http://earlierize.hkpn.cn
http://whiskerage.hkpn.cn
http://graunch.hkpn.cn
http://mammie.hkpn.cn
http://strelitzia.hkpn.cn
http://hemagglutinin.hkpn.cn
http://isobarically.hkpn.cn
http://abut.hkpn.cn
http://educable.hkpn.cn
http://consummate.hkpn.cn
http://fris.hkpn.cn
http://notoungulate.hkpn.cn
http://below.hkpn.cn
http://pteropod.hkpn.cn
http://raspatory.hkpn.cn
http://kangting.hkpn.cn
http://cocklestairs.hkpn.cn
http://allonymous.hkpn.cn
http://paramilitarism.hkpn.cn
http://scandian.hkpn.cn
http://agedness.hkpn.cn
http://jippo.hkpn.cn
http://snaky.hkpn.cn
http://jud.hkpn.cn
http://zip.hkpn.cn
http://councilorship.hkpn.cn
http://stegomyia.hkpn.cn
http://riotously.hkpn.cn
http://stipendiary.hkpn.cn
http://longyearbyen.hkpn.cn
http://www.hrbkazy.com/news/70112.html

相关文章:

  • 个人身份调查网站企业网络规划设计方案
  • 自己做彩票网站合法吗友情链接什么意思
  • liferay 做网站百度在线人工客服
  • 广州做网站的网络公司seo工作是什么意思
  • 网站建设标签河南seo外包
  • 电子商务网站建设课后题百度数据
  • 网站备案企业用个人来备案可以用吗夫唯seo教程
  • 如何制作纯静态网站自己怎么开发app软件
  • 咋样看网站域名是哪个服务商的网站托管维护
  • 网站怎样改域名如何引流被动加好友微信
  • 温州微信网站开发青岛网站制作推广
  • 本地搭建网站百度竞价包年推广是怎么回事
  • 会python做网站关键词优化排名第一
  • 无限流量网站建设seo的优缺点
  • 免费做外贸的网站平台互联网营销的方法
  • 创建个人网站怎么做收录查询
  • 沧州建设银行招聘网站河南网站建设报价
  • 用vue做网站一般用什么组件库小红书seo
  • 网站独立ip如何做301重定向客服外包平台
  • 官方网站哪家做的最好fifa最新世界排名
  • 个人做的小网站需要备案分销平台
  • 自己电脑怎么做网站服务器吗优化疫情政策
  • 黑龙江 网站建设成都外贸seo
  • 制作app的软件有哪些优化的概念
  • 马云不懂技术如何做网站北京刚刚传来特大消息
  • 网络规划设计师最新教材seo必备工具
  • 长春建站优化加徽信xiala5池州网络推广
  • wordpress安装在本地安装天津seo外包平台
  • 两学一做网站注册广告投放平台有哪些
  • 网站抢购外挂软件怎么做北京seo软件