三个线程打印ABC10次,ABCABCABC....
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include "windows.h" #include<string>using namespace std;HANDLE hEventA; HANDLE hEventB; HANDLE hEventC;DWORD WINAPI funproc(LPVOID lpparentet) {string s = (char * )lpparentet;int count = 0;string sA = "A";string sB = "B";string sC = "C";while (count < 10){Sleep(100);if (sA.compare(s)==0){DWORD dwRet = WaitForSingleObject(hEventA, INFINITE);if (dwRet == WAIT_OBJECT_0){printf("A");count++;SetEvent(hEventB);}}if (sB.compare(s) == 0){DWORD dwRet = WaitForSingleObject(hEventB, INFINITE);if (dwRet == WAIT_OBJECT_0){printf("B");count++;SetEvent(hEventC);}}if (sC.compare(s) == 0){DWORD dwRet = WaitForSingleObject(hEventC, INFINITE);if (dwRet == WAIT_OBJECT_0){printf("C");count++;SetEvent(hEventA);}}}return 0; }int main() {hEventA = CreateEvent(NULL, false, true, NULL);hEventB = CreateEvent(NULL, false, false, NULL);hEventC = CreateEvent(NULL, false, false, NULL);HANDLE hThreadA = CreateThread(NULL, 0, funproc, "A", 0, NULL);HANDLE hThreadB = CreateThread(NULL, 0, funproc, "B", 0, NULL);HANDLE hThreadC = CreateThread(NULL, 0, funproc, "C", 0, NULL);Sleep(10000);return 0; }
转载于:https://www.cnblogs.com/liufei1983/p/7121820.html
三个线程打印ABC10次,ABCABCABC....相关推荐
- java同步三线程打印abc_java多线程打印ABC
/*** 方案一 * *@authorLY*/ public classLockObject {publicString lockName;publicLockObject() { }publicLo ...
- 三个线程轮流执行顺序打印ABC
方法1:使用boolean标记 package com.ziyear.exam;/*** 3个线程,顺序打印ABC10次*/ public class PrintThread_ABC_10_1 {/* ...
- 用三个线程实现生产者消费者模型,其中一个线程作为生产者,二个线程作为消费者,生产者随机生产一个时间戳或者字符串,消费者消费这个时间戳,并不能重复消费,并将其打印出来
题目要求: 用三个线程实现生产者消费者模型,其中一个线程作为生产者,二个线程作为消费者,生产者随机生产一个时间戳或者字符串,消费者消费这个时间戳,并不能重复消费,并将其打印出来.(这是一道百度面试的算 ...
- 三个线程交替打印ABC(Condition实现精确通知)
三个线程交替打印ABC: package pc;import java.util.concurrent.locks.Condition; import java.util.concurrent.loc ...
- 两种方式实现线程通信:三个线程交替打印AABBCC
多线程之间是抢占资源的,使用线程通信可以达到线程按序执行的目的 线程共享资源类, 首先创建一个资源类, 包含三个打印的方法以及首次打印的字符串 多个线程访问,方法加synchronized同步锁 cl ...
- java多线程交替打印_使用Java实现三个线程交替打印0-74
使用Java实现三个线程交替打印0-74 题目分析 三个线程交替打印,即3个线程是按顺序执行的.一个线程执行完之后,唤醒下一个线程,然后阻塞,等待被该线程的上一个线程唤醒.执行的顺序是一个环装的队列 ...
- 【Java面试高频-多线程】- 三个线程分别负责打印A,B和C,循环100次
(2)面试真题-三个线程分别负责打印A,B和C,循环100次 a.ReentrantLock和Condition来完成这项工作 package com.lcz.thread; // 三个线程 // 匿 ...
- 启动三个线程,线程1打印1-5,线程2打印6-10,线程3打印11-15,接着线程1打印16-20……依此类推,打印到72.
public class MyTest { public static void main(String[] args) { //创建任务对象 MyTask myTask = new MyTask() ...
- 一道面试题:三个线程循环有序输出10次ABCABC...
面试遇到的一道面试题:三个线程循环有序输出10次ABCABC... 解决思路:使用synchronized,wait和notifyAll控制线程同步 package com.myj.test.thre ...
最新文章
- 简单使用URLConnection、HttpURLConnection和HttpClient访问网络资源
- 【一秒打开】如何提高IDEA、vscode的开启速度
- web前端数组处理之数组去重
- AT2672 Coins
- gitlab 使用教程
- caffe与tensorflow框架下卷积的维度计算与一致性证明
- 动手学深度学习(PyTorch实现)(十)--NiN模型
- 为什么中国企业海外营销都选择Facebook?
- Tomcat运行流程
- 排序算法专题-归并排序
- FIO压测-SSDvsHDD
- 745. 前缀和后缀搜索(每日一难phase2--day27)
- SPSS实现单因素方差分析
- 环境变量GOBIN导致GoClipse运行出现异常
- 实现游戏的读档和存档
- ES文件浏览器ftp文件共享,通过电脑访问手机文件夹传输文件
- 华为S5720S重置密码
- 量化新手初识Brinson绩效分解模型
- 项目管理资格认证PMP考前培训班
- 桂林理工大学南宁分校php实训,桂林理工大学南宁分校冶金化工虚拟仿真实验教学中心...
热门文章
- Activity 半透明样式
- 进程外Session保存和全局文件错误捕获
- (转)使用tar和split打包分割文件
- .NET截取指定长度汉字超出部分以...代替
- CNN+Transformer=Better,国科大华为鹏城实验室提出Conformer,84.1% Top-1准确率
- 【文末送书】调参太费力?自动化机器学习来帮你!
- ECCV 2020 | 视觉引导的声源分离辅助立体声重构方法 Sep-Stereo
- 一行命令搞定图像质量评价
- 一文读懂目前大热的AutoML与NAS!
- OpenCV手部关键点检测(手势识别)代码示例