CreateEvent人工重置事件对象

2023-10-31

#include <stdio.h>
#include <windows.h>

/*
人工重置的事件对象有信号状态,所有的线程都可以运行ResetEvent
自动重置的事件对象有信号状态,所有的线程只有一个变为可调度线程

*/

DWORD WINAPI ThreadProc1(  LPVOID lpParameter);
DWORD WINAPI ThreadProc2(  LPVOID lpParameter);
HANDLE hEvent=NULL;
int i=100;
int main( void )
{
	hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);  //人工重置事件对象---无信号状态
	SetEvent(hEvent);      //设置事件有信号状态
	HANDLE hThread[2]={0};
	hThread[0]=CreateThread(NULL,NULL,ThreadProc1,NULL,NULL,NULL);
	hThread[1]=CreateThread(NULL,NULL,ThreadProc2,NULL,NULL,NULL);
	CloseHandle(hThread[0]);
	CloseHandle(hThread[1]);

	getchar();
	CloseHandle(hEvent);
	return 0;
}

DWORD WINAPI ThreadProc1(  LPVOID lpParameter)
{
	while (i>0)
	{
		
		WaitForSingleObject(hEvent,INFINITE);  //等待有信号状态
		ResetEvent(hEvent); 
		Sleep(1); 
		printf("ThreadProc1 %d\n",i--);
		SetEvent(hEvent); 
		Sleep(1); 
		 	
	}
	return 0;
}

DWORD WINAPI ThreadProc2(  LPVOID lpParameter)
{
	while(i>0)
	{
		WaitForSingleObject(hEvent,INFINITE);  //等待有信号状态
		ResetEvent(hEvent);  
		Sleep(1); 
		printf("ThreadProc2 %d\n",i--);
		SetEvent(hEvent);
		Sleep(1); 
	}
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CreateEvent人工重置事件对象 的相关文章

  • std::atomic_thread_fence

    在原子变量的存取上应用不同的memory order可以实现不同的内存序来达到数据同步的目的 xff0c 而在C 43 43 11及之后的标准里 xff0c 除了利用原子操作指定内存序 xff0c 还定义了单独使用 内存栅栏 xff08 s
  • RT-thread 中CAN总线的应用

    准备 xff1a RT thread Studio 2 2 5 CubeMX 6 6 1 rt thread驱动包 4 0 3 1 新建项目 2 打开CubeMX Settings xff0c 设置CAN 找到CAN1 xff0c 并勾选激
  • NoClassDefFoundError: com/google/common/collect/Maps

    Error Exception in thread main java lang NoClassDefFoundError com google common collect Maps I believe you are missing g
  • 【C++11多线程】线程的创建与结束:thread

    文章目录 1 普通函数作为线程函数 1 1 thread 1 2 join 1 3 detach 1 4 joinable 2 函数对象作为线程函数 3 lambda表达式作为线程函数 4 类成员函数作为线程函数 5 向线程函数传递参数 1
  • 线程池创建类ThreadPoolExecutor介绍

    ThreadPoolExecutor 使用给定的初始参数和默认线程工厂和拒绝的执行处理程序创建一个新的线程池执行器 一 构造方法参数说明 有四个构造方法 最终都是调用构造方法四 构造方法参数说明 param corePoolSize 保留在
  • Java Thread Join

    join方法的作用 在A线程中调用了B线程的join 方法时 表示只有当B线程执行完毕时 A线程才能继续执行
  • 主线程中捕获子线程异常

    需求 主线程独立执行 无需等待子线程执行完毕 子线程如有异常抛出可自行catch 网上介绍的方法一般是 1 在线程内部进行try catch捕获异常 2 通过线程池的submit方法 获取Future对象 然后try catch Futur
  • yield和join方法的使用。

    join方法用线程对象调用 如果在一个线程A中调用另一个线程B的join方法 线程A将会等待线程B执行完毕后再执行 yield可以直接用Thread类调用 yield让出CPU执行权给同等级的线程 如果没有相同级别的线程在等待CPU的执行权
  • 转帖:Bash实现“多线程”的例子

    以下文章转自 http hi baidu com wwy1640 blog item a74d8c50a272b86384352443 html Bash实现 多线程 的例子 2007 04 25 22 59 bin bash 2006 7
  • CreateEvent自动重置事件对象

    include
  • ThreadLocal,看我就够了!

    ThreadLocal 开胃菜 研究过Handler的应该对ThreadLocal比较眼熟的 线程中的Handler对象就是通过ThreadLocal来存放的 初识ThreadLocal的可能被它的名字有所误导 ThreadLocal初一看
  • java之Thread类详细分析(全)

    目录 前言 1 属性值 1 1 线程属性方法 2 常用方法 3 使用方法 前言 Thread是程序中的执行线程 jvm并发地运行多个执行线程 1 属性值 通过查看Thread源码 是继承Runnable接口的实现类 无论使用Runnable
  • 多线程问题分析thread

    多线程 进程概述 A 进程 进程指正在运行的程序 确切的来说 当一个程序进入内存运行 即变成一个进程 进程是处于运行过程中的程序 并且具有一定独立功能 简而言之 当前正在运动的程序 一个应用程序在内存中的执行区域 B 线程 线程是进程中的一
  • Java 多线程 -- 从入门到精通

    持续更新中 欢迎收藏 关注 以便查看后续 Java 多线程 从入门到精通 Java线程与线程的区别 多线程的实现方法 Thread中start和run方法的区别 Thread和Runnable的关系 使用Callable和Future创建线
  • Java 线程的生命周期(对应七大状态)

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 线程的生命周期 线程状态的转换 通过代码输出线程的状态 代码如下 public class ThreadState public sta
  • qt中常用lambda表达式

    qt中lambda表达式 什么是lambda 个人理解 没有函数名的函数 qt中使用基础 备注 都是在qt5中做的使用 我的qt版本是qt5 11 3 pro文件中 config c 11 常见的lambda表达式使用 延时执行操作 举例
  • pthread_attr_init线程属性

    1 线程属性 线程具有属性 用pthread attr t表示 在对该结构进行处理之前必须进行初始化 在使用后需要对其去除初始化 我们用pthread attr init函数对其初始化 用pthread attr destroy对其去除初始
  • log4net使用

    说明 本程序演示如何利用log4net记录程序日志信息 log4net是一个功能著名的开源日志记录组件 利用log4net可以方便地将日志信息记录到文件 控制台 Windows事件日志和数据库 包括MS SQL Server Access
  • 使用org.apache.tools.zip包操作文件

    import java io import org apache tools zip import java util Enumeration 功能 zip压缩 解压 支持中文文件名 说明 本程序通过使用Apache Ant里提供的zip工
  • winCE中实现虚拟串口的方法

    转载请标明是引用于 http blog csdn net chenyujing1234 欢迎大家拍砖 环境 wince6 0 ARM Freescell 一 目的 设计一个读GPS串口数据的驱动 并注册为COM口 二 实现过程 1 COM

随机推荐

  • 在QMap中嵌套QList

    刚接触QT的QMap比较困惑 看这名字以为是二维数组 因为我把QList当作一维数组来用了 事实上也确实可以 但只当一维数组太浪费了 可参考别的资料 cpp view plain copy QMap
  • 面试时,发现公司有这8个现象,建议你慎重考虑

    爱开发 陪伴你一起成长 快年底 相信有不少朋友有跳槽的念头 今天我们来聊一聊面试的一些话题 面试时 我们有机会对公司的情况做一下了解 比如和面试官交流 我们大致能了解到公司的一些基本情况 这些情况比我们在去面试前更为准确 程序员面试时 发现
  • Spark RDD之Key-Value类型操作详解

    partitionBy案例 1 作用 对pairRDD进行分区操作 如果原有的partionRDD和现有的partionRDD是一致的话就不进行分区 否则会生成ShuffleRDD 即会产生shuffle过程 2 需求 创建一个4个分区的R
  • 了解链接是什么?

    链接是将各种代码和数据片段收集并且组合成为一个单一文件的过程 这个文件可以被加载到内存并且执行 链接可以执行于编译时 也就是在程序被加载器加载到内存并且执行 甚至在执行于运行的时候 也就是由应用程序来执行 在早期的计算机系统中 链接是手动执
  • OrCAD中DRC的使用简要说明

    OrCAD中DRC的使用简要说明 1 DRC的使用 Scope entire 检查所有设计 selection 检查选中部分 Mode 理解Mode需要先理解instance 实例 和occurrences 事件 这是OrCAD中非常重要的
  • 单元测试框架(JUnit和Unittest)

    单元测试就是针对最小功能单元编写测试代码 1 JUnit Unit 是一个 Java编程语言的单元测试框架 java程序最小的功能是方法 单元测试就是针对java方法的测试 测试单元中的每个方法必须可以独立测试 方法间不能有任何依赖 1 1
  • 浅谈多路复用select、epoll

    一 多路复用技术 在理解多路复用之前了解一下IO阻塞 IO非阻塞有利于理解IO多路复用 可以想象成父进程为董事长 其雇佣秘书 内核 帮助你监听读写缓冲区 常见的有select poll epoll 这里只谈一下select和epoll po
  • 【持续更新中】Unity常见问题及其解决

    目录 导出游戏时需要选择空的文件夹 CS0103错误 使用的变量名或者方法名并不存在于当前上下文中 CS1061错误 尝试调用方法或访问不存在的类成员 Unity怎么点都没反应 可能是进入了死循环 CS0428错误 类型转换错误 CS165
  • 编写自己的springboot starter

    一 编写自己的springboot starter 可能已经过时了 仅建议参考 引入对应的依赖 编写实现类 编写配置文件读取类 主要注解是 ConfigruationProperties 配置的值例如 example a 编写自动装配类 编
  • 《Deep Residual Learning for Image Recognition》论文学习

    Deep Residual Learning for Image Recognition 文章地址 Deep Residual Learning for Image Recognition arXiv 1512 03385 ResNet G
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 利用SpringBoot简单快速搭建WEB项目入门

    我们在WEB应用开发过程中 我们常常用到的语言是JAVA语言 作为WEB应用中的霸主级别中 的存在 却常常被嘲讽 人生苦短 我用python 是python程序员们引以为傲的格言 人们经常 将JAVA与时代新宠Python作比较 至今网上还
  • 用Python每天自动给女朋友免费发短信,谁说程序员不懂浪漫?

    前言 之前发过一篇文章 用 Python 制作的给父母天气预报提醒的小工具天气变冷了 给父母制作一个天气提醒小助手 这篇文章我同步到博客上之后 有读者在评论区留言 对于部分微信没有网页版接口 导致无法实现这个功能 这位读者建议 建议用发短信
  • Linux自动删除tomcat日志文件

    查看Linux启动的所有crontab crontab l 编辑crontab crontab e bin sh export LANG zh CN export WEB HOME webhome find dir path dir pru
  • 【渗透测试】Struts2系列漏洞

    目录 S2 001 1 漏洞原理 2 影响版本 3 验证方法 S2 005 1 漏洞原理 2 影响版本 3 验证方法 无回显 4 验证方法 有回显 S2 007 1 漏洞原理 2 影响版本 3 漏洞验证 S2 008 1 漏洞原理 2 影响
  • k8s 探针

    1 前言 Kubernetes探针 Probe 是用于检查容器运行状况的一种机制 探针可以检查容器是否正在运行 容器是否能够正常响应请求 以及容器内部的应用程序是否正常运行等 在Kubernetes中 探针可以用于确定容器的健康状态 如果容
  • CSDN账号等级提升规则

    2023最新 大家登录CSDN主要有两种需求 一是获取资源 另一种是发放资源 CSDN大约从2022年开始 不断调整等级规则 CSDN账号达到4级才能有资格上传付费资源 我搜索发现CSDN账号可能因实名的原因 没有买卖的 本文主要介绍3个内
  • 使用uni.share在IOS上分享不显示图片的问题

    问题背景 使用uni app跨平台 编译运行到ios上 发现分享图文的时候 图片无法显示 在安卓上分享正常 uni分享朋友圈api地址 uni share provider weixin scene WXSenceTimeline type
  • 寻找凸包

    问题 点集 Q 的凸包 convex hull 是一个最小的凸多边形 P Q 中的每个点或在 P 的边界上或 在 P 的内部 我们用 CH Q 表示点集 Q 的凸包 问题定义 输入 平面上的点集 Q 输出 Q 的凸包 CH Q a 请给出一
  • CreateEvent人工重置事件对象

    include