// 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....相关推荐

  1. java同步三线程打印abc_java多线程打印ABC

    /*** 方案一 * *@authorLY*/ public classLockObject {publicString lockName;publicLockObject() { }publicLo ...

  2. 三个线程轮流执行顺序打印ABC

    方法1:使用boolean标记 package com.ziyear.exam;/*** 3个线程,顺序打印ABC10次*/ public class PrintThread_ABC_10_1 {/* ...

  3. 用三个线程实现生产者消费者模型,其中一个线程作为生产者,二个线程作为消费者,生产者随机生产一个时间戳或者字符串,消费者消费这个时间戳,并不能重复消费,并将其打印出来

    题目要求: 用三个线程实现生产者消费者模型,其中一个线程作为生产者,二个线程作为消费者,生产者随机生产一个时间戳或者字符串,消费者消费这个时间戳,并不能重复消费,并将其打印出来.(这是一道百度面试的算 ...

  4. 三个线程交替打印ABC(Condition实现精确通知)

    三个线程交替打印ABC: package pc;import java.util.concurrent.locks.Condition; import java.util.concurrent.loc ...

  5. 两种方式实现线程通信:三个线程交替打印AABBCC

    多线程之间是抢占资源的,使用线程通信可以达到线程按序执行的目的 线程共享资源类, 首先创建一个资源类, 包含三个打印的方法以及首次打印的字符串 多个线程访问,方法加synchronized同步锁 cl ...

  6. java多线程交替打印_使用Java实现三个线程交替打印0-74

    使用Java实现三个线程交替打印0-74 题目分析 三个线程交替打印,即3个线程是按顺序执行的.一个线程执行完之后,唤醒下一个线程,然后阻塞,等待被该线程的上一个线程唤醒.执行的顺序是一个环装的队列 ...

  7. 【Java面试高频-多线程】- 三个线程分别负责打印A,B和C,循环100次

    (2)面试真题-三个线程分别负责打印A,B和C,循环100次 a.ReentrantLock和Condition来完成这项工作 package com.lcz.thread; // 三个线程 // 匿 ...

  8. 启动三个线程,线程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() ...

  9. 一道面试题:三个线程循环有序输出10次ABCABC...

    面试遇到的一道面试题:三个线程循环有序输出10次ABCABC... 解决思路:使用synchronized,wait和notifyAll控制线程同步 package com.myj.test.thre ...

最新文章

  1. 简单使用URLConnection、HttpURLConnection和HttpClient访问网络资源
  2. 【一秒打开】如何提高IDEA、vscode的开启速度
  3. web前端数组处理之数组去重
  4. AT2672 Coins
  5. gitlab 使用教程
  6. caffe与tensorflow框架下卷积的维度计算与一致性证明
  7. 动手学深度学习(PyTorch实现)(十)--NiN模型
  8. 为什么中国企业海外营销都选择Facebook?
  9. Tomcat运行流程
  10. 排序算法专题-归并排序
  11. FIO压测-SSDvsHDD
  12. 745. 前缀和后缀搜索(每日一难phase2--day27)
  13. SPSS实现单因素方差分析
  14. 环境变量GOBIN导致GoClipse运行出现异常
  15. 实现游戏的读档和存档
  16. ES文件浏览器ftp文件共享,通过电脑访问手机文件夹传输文件
  17. 华为S5720S重置密码
  18. 量化新手初识Brinson绩效分解模型
  19. 项目管理资格认证PMP考前培训班
  20. 桂林理工大学南宁分校php实训,桂林理工大学南宁分校冶金化工虚拟仿真实验教学中心...

热门文章

  1. Activity 半透明样式
  2. 进程外Session保存和全局文件错误捕获
  3. (转)使用tar和split打包分割文件
  4. .NET截取指定长度汉字超出部分以...代替
  5. CNN+Transformer=Better,国科大华为鹏城实验室提出Conformer,84.1% Top-1准确率
  6. 【文末送书】调参太费力?自动化机器学习来帮你!
  7. ECCV 2020 | 视觉引导的声源分离辅助立体声重构方法 Sep-Stereo
  8. 一行命令搞定图像质量评价
  9. 一文读懂目前大热的AutoML与NAS!
  10. OpenCV手部关键点检测(手势识别)代码示例