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

ppt网站建设答案minisite网站案例

ppt网站建设答案,minisite网站案例,四川大学官方网站规划建设处,暖通设计网站推荐在做一些比较大的项目的时候,需要实现线程同步, 这里结合一个小示例,进行线程同步的讲解 问题定义 以下是一个使用 C 多线程和条件变量的示例,展示了线程 A 接收一个 enable 信号并通知线程 B 开始工作。线程 B 在开始工作之前…

在做一些比较大的项目的时候,需要实现线程同步, 这里结合一个小示例,进行线程同步的讲解

问题定义

以下是一个使用 C++ 多线程和条件变量的示例,展示了线程 A 接收一个 enable 信号并通知线程 B 开始工作。线程 B 在开始工作之前将 enable 信号设置为 false,然后执行其任务。

#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <atomic>// 共享数据
std::atomic<bool> enable(false);
std::mutex mtx;
std::condition_variable cv;void threadA() {// 模拟接收 enable 信号std::this_thread::sleep_for(std::chrono::seconds(1));{std::lock_guard<std::mutex> lock(mtx);enable = true;}std::cout << "Thread A: enable signal received. Notifying thread B." << std::endl;cv.notify_one(); // 通知线程 B
}void threadB() {std::unique_lock<std::mutex> lock(mtx);// 等待 enable 信号cv.wait(lock, [] { return enable.load(); });std::cout << "Thread B: Received notification. Setting enable to false." << std::endl;enable = false; // 将 enable 信号设置为 false// 进行工作std::cout << "Thread B: Working..." << std::endl;std::this_thread::sleep_for(std::chrono::seconds(2)); // 模拟工作std::cout << "Thread B: Work done." << std::endl;
}int main() {std::thread tA(threadA);std::thread tB(threadB);tA.join();tB.join();return 0;
}

代码说明

  1. 共享数据
    • enable:使用 std::atomic<bool> 进行原子操作,确保线程安全。
    • mtx:互斥锁,用于保护共享数据。
    • cv:条件变量,用于线程之间的同步。
  2. **threadA**** 函数**:
    • 模拟接收 enable 信号。
    • 设置 enabletrue,表示信号已接收。
    • 通知线程 B。
  3. **threadB**** 函数**:
    • 等待 enable 信号。条件变量 cv.wait 保证线程在 enabletrue 之前不会继续执行。
    • 在接收到通知后,将 enable 设置为 false
    • 执行其任务。
  4. **main**** 函数**:
    • 创建并启动线程 A 和线程 B。
    • 等待线程 A 和线程 B 完成。

这个示例展示了如何使用条件变量和原子变量进行线程间的同步和数据共享。

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

相关文章:

  • 昆明网站建设论坛做网站后的收获
  • 公司创建一个网站多少钱广东省城乡和建设厅网站
  • 网站空间在哪买网站备案和空间备案
  • 建设政务门户网站的基本意义旅游网站系统wordpress
  • 太原市住房和城乡建设部网站微信开发什么时候好
  • 企业网站建设讲解黄山市网站建设
  • 免费手机网站源码下载做自媒体可以搬运国外网站新闻吗
  • 郫县网站制作外贸是做什么的学什么专业
  • 西安建站免费模板手机app开发需要什么技术
  • 中小学智慧校园建设平台网站做网站条件
  • 东莞网站建设智搜宝成都网站制作工具
  • 中铁建设集团有限公司门户网站郑州做网站网络公司
  • 宠物店网站怎么做北京网站域名快速备案
  • dedecms 资源类网站国内顶尖的公司
  • 模板网站建设的公司中企动力邮箱登陆网址
  • 昆明专业建站怎么做网站代码
  • 网站建设制作费用预算表wordpress修改语言
  • 一般做网站图是多大的像素网站运营风险分析
  • seo网站策划上海网站建设开发哪
  • 网站建设维护学什么科目宁波网页设计联系方式
  • 做网站运营的女生多吗萍乡网站优化
  • 蓝色响应式机械类网站做棋牌辅助网站
  • 网站地图 模板查公司的国家网站有哪些
  • 网站流量统计表包头教育云网站建设
  • 海口网站建设解决方案wordpress4中文
  • 手机网站列表模板网站做网站词怎么推广
  • 哈尔滨网站专业制作建设部房地产网站
  • 达州做网站清爽帝国cms
  • 网站开发与设计专业在服务器上运行wordpress
  • 自己电脑做服务器上传网站 需要备案吗旅游网站源码免费下载