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

美女做羞羞的网站网址导航下载到桌面

美女做羞羞的网站,网址导航下载到桌面,傻瓜式做网站,男女做爰视频网站在线说明 本代码为jyy老师上课演示条件变量解决同步问题示例(本人只做记录与分享) 本人未使用老师封装的POSIX线程库, 直接在单文件中调试并注释 问题描述 有三类线程 T1 若干: 死循环打印< T2 若干: 死循环打印> T3 若干: 死循环打印_ 任务: 对线程同步&#xff0c;使得屏幕…

说明

本代码为jyy老师上课演示条件变量解决同步问题示例(本人只做记录与分享)
本人未使用老师封装的POSIX线程库, 直接在单文件中调试并注释

问题描述

有三类线程
T1 若干: 死循环打印<
T2 若干: 死循环打印>
T3 若干: 死循环打印_
任务:
对线程同步,使得屏幕打印出<><__><>的组合

状态机

在这里插入图片描述

代码

#include <pthread.h>
#include <iostream>
#include <assert.h>
#include <string>
#include <vector>#define Lock(x) pthread_mutex_lock(x) 
#define UnLock(x) pthread_mutex_unlock(x)// 状态机的状态, 从1开始编号
enum { A = 1, B, C, D, E, F, };
// 构建状态机的
struct rule {int from, ch, to;
};
std::vector<rule> rules = {// <><{A, '<', B},{B, '>', C},{C, '<', D},// ><>{A, '>', E},{E, '<', F},{F, '>', D},// D是打印出一条鱼后停留的状态, // 需要经过'_'到初始状态A, 重新打印鱼{D, '_', A},
};
// 当前状态
int current_state = A;pthread_mutex_t lk = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t cv = PTHREAD_COND_INITIALIZER;/*** 检查当前状态是否又ch这条出边* 返回0表示无法根据ch转移到一个状态
*/
int next(char ch) {// 检查ch是否是当前状态的出边for (const auto& rule : rules) {if (rule.from == current_state && rule.ch == ch) {return rule.to;}}return 0;
}
/*** 检查同步条件是否满足
*/
static int can_print(char ch) {return next(ch) != 0;
}
// 创建12个线程, 每4个打印同种字符
std::string charlib = ".<<<<<>>>>___";void* fish_thread(void* arg) {int id = *((int *)arg);char role = charlib[id];while (true) {// 先上锁Lock(&lk);// 再检查条件变量while (!can_print(role)) {pthread_cond_wait(&cv, &lk);}putchar(role); // Not lock-protected// 更新到下一个状态current_state = next(role);assert(current_state);// 更新状态后可能会使得等待该条件的线程满足条件pthread_cond_broadcast(&cv);UnLock(&lk);}
}int main() {std::vector<pthread_t> threads(charlib.size());std::vector<int> pid(charlib.size());for (int i = 0; i < charlib.size(); i++) {pid[i] = i + 1;pthread_create(&threads[i], nullptr, &fish_thread, &pid[i]);}for (int i = 0; i < charlib.size(); i++) {pthread_join(threads[i], nullptr);}
}
http://www.dt0577.cn/news/46004.html

相关文章:

  • 做兼职那个网站靠谱吗常见的系统优化软件
  • 资阳的网站建设百度竞价入门教程
  • 广州正规网站建设企业线上卖货平台有哪些
  • 做网站找合作伙伴营业推广促销方式有哪些
  • 建设独立商城网站制作seo项目
  • 国内做批发的网站唐山seo排名优化
  • 公司网站未备案吗推广普通话手抄报内容大全资料
  • 兰州网站建设方案详细百度引流平台
  • 美津浓网站做一下脚型测试青岛网络推广
  • 成全视频免费高清观看在线电视剧网站怎么优化seo
  • Python做网站难不难应用商店下载安装
  • 杭州市城乡建设网站中山seo关键词
  • 有建网站的公司吗武汉做网页推广公司
  • 有关做学校网站的毕业论文推广平台哪个效果最好
  • 网站开发培训哪里好免费网站注册平台
  • 深圳电子商城网站建设西安网站公司推广
  • 网站开发如何共用菜单栏目前较好的crm系统
  • 乐山北京网站建设关键词优化排名工具
  • 网站建设与管理报告河源市企业网站seo价格
  • 周口做网站公司推广用哪个平台效果好
  • 法律网站建设实施方案百度网址安全检测
  • 网站建设 软件上海百度推广代理商
  • 网站是由什么组成的商品标题seo是什么意思
  • 好的网址推荐网站关键词优化办法
  • 大气的企业网站设计最新新闻热点事件及评论
  • 丹江口做网站电商关键词seo排名
  • 怎么创建网站平台赚钱百度网盘怎么找资源
  • 外国人在中国做美食视频网站杭州百度seo优化
  • 用jquery做网站什么样的人适合做营销
  • 安丘网站制作百度网络推广怎么做