简单的多线程创建,执行,挂起,终止的例子.

创建:CreateThread:参数有:线程属性指针,栈大小,线程入口地址,线程参数列表地址,创建标志(0表示立即执行,CREATE_SUSPENDED),线程ID的指针)。

挂起:SuspendThread(HANDLE hThread);

唤醒:ResumeThread(HANDLE hThread);

终止:线程内终止ExitThread(DWORD  dwExitCode);线程外终止:TerminateThread(HANDLE hThread, DWORAD ExitCode);

等待:WaitForSingleObject(HANDLE object, time); 和 WaitForMultipleObject(数量,首指针,是不是全等,最大时间);

创建两个线程,创建时即进入阻塞状态,然后根据主线程的input值,去唤醒或阻塞线程执行。

//简单的多线程创建,执行,挂起,终止的例子
//利用win32 API#include <iostream>
#include <windows.h>using namespace std;DWORD WINAPI FunOne(LPVOID param){while (true){Sleep(1000);cout <<*((int*)param)<< " hello" << endl;}
}DWORD WINAPI FunTwo(LPVOID param){while (true){Sleep(1000);cout << "world" << endl;}
}int main(){int input = 0;HANDLE hand1 = CreateThread(NULL, 0, FunOne, (void *)&input, CREATE_SUSPENDED, NULL);HANDLE hand2 = CreateThread(NULL, 0, FunTwo, (void *)&input, CREATE_SUSPENDED, NULL);while (input != 3){cin >> input;if (input == 1){ResumeThread(hand1);ResumeThread(hand2);}else if (input == 2){SuspendThread(hand1);SuspendThread(hand2);}}TerminateThread(hand1, 1);TerminateThread(hand2, 2);return 0;
}

简单的多线程创建,执行,挂起,终止的例子相关推荐

  1. VC菜菜鸟-创建一个简单的多线程任务

    在学习编程的过程中,经典的"HelloWorld"给我最大的启示就是,一切从简,简而明理. 写一个连"白痴"都看得懂的代码,是编程的最高境界. 想要学一个知识点 ...

  2. c++11 多线程 顺序执行_前阿里P8架构师总结的一些关于Java多线程的编程经验丨干货...

    推荐阅读 Java程序员备战"金九银十"必备的面试技巧(附阿里Java岗面试题) 一.认识多任务.多进程.单线程.多线程 要认识多线程就要从操作系统的原理说起. 以前古老的DOS操 ...

  3. Docker 入门系列(3)- Docker 容器(创建、启动、终止、进入、删除、导入、导出容器、容器和镜像转化)

    Docker 容器 简单来说,容器是镜像的一个运行实例.所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层. 如果认为虚拟机是模拟运行的一整套操作系统(包括内核.应用运行态环境和其他系 ...

  4. Java Tread多线程(0)一个简单的多线程实例

    作者 : 卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/39341887 本文演示,一个简单的多线程实例,并简单分析一下线程. 编程多 ...

  5. Python3进阶--Socket编程、多线程(创建方式、线程通信、线程锁、线程池)

    第一章 变量.常用循环体.代码结构.代码练习 第二章 列表.元组等数据结构.字符串驻留机制及字符串格式化操作 第三章 函数.面向对象.文件操作.深浅拷贝.模块.异常及捕获 第四章 项目打包.类和对象高 ...

  6. java多线程创建方式以及线程安全

    什么是线程 线程被称为轻量级进程,是程序执行的最小单位,它是指在程序执行过程中,能够执行代码的一个执行单位.每个程序程序都至少有一个线程,也即是程序本身. 线程的状态 新建(New):创建后尚未启动的 ...

  7. C#中使用Monitor类、Lock和Mutex类来同步多线程的执行(转)

    C#中使用Monitor类.Lock和Mutex类来同步多线程的执行 在多线程中,为了使数据保持一致性必须要对数据或是访问数据的函数加锁,在数据库中这是很常见的,但是在程序中由于大部分都是单线程的程序 ...

  8. JBoss 系列八十一: jBPM 6 中使用 jbpm-console 创建执行 BPM 流程 - II

    2019独角兽企业重金招聘Python工程师标准>>> 概述 如jBPM 6 中使用 jbpm-console 创建执行 BPM 流程 - I中所示,我们在jbpm-console ...

  9. [转]C#中使用Monitor类、Lock和Mutex类来同步多线程的执行

    C#中使用Monitor类.Lock和Mutex类来同步多线程的执行 在多线程中,为了使数据保持一致性必须要对数据或是访问数据的函数加锁,在数据库中这是很常见的,但是在程序中由于大部分都是单线程的程序 ...

最新文章

  1. 汇编中Enter和Leave指令
  2. 图解web前端开发工具教程
  3. CV之FR:计算机视觉之人脸识别(Face Recognition)方向的简介、代码实现、案例应用之详细攻略
  4. 服务中启动oracle服务,Linux下如何自动启动Oracle服务
  5. ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台
  6. 这些基因的名字太有才了,研究一下都可以发10分文章
  7. 一个简单示例 利用jawin完成调用window中dll的调用
  8. ospf配置命令_思科设备 OSPF 的相关知识点
  9. 华为悬红“奥林帕斯奖”,促进数据产业基础技术研究与生态建设
  10. redis windows下使用及redis命令
  11. PL/SQL批处理语句(BULK COLLECT子句和FORALL语句)
  12. 《非对称风险》读书笔记(一)
  13. 智能车制作1——编码器
  14. Win11玩红警2黑屏的解决办法
  15. 面试题64:computer和watch的区别
  16. 谷歌、百度、搜狗、有道搜索个人之比较
  17. 怎么把html导入xmind,XMind思维导图怎么导入图标?
  18. 新年贺卡php,幼儿新年贺卡内容 元旦贺卡图片手工制作
  19. SpringBoot 轻松搞定数据验证 (三)
  20. 除法运算符号“/” ——不同形式参数,商的不同

热门文章

  1. 区块链学习——区块链的技术栈
  2. SVG路径描边动画效果的实现
  3. MYSQL 体系结构图-log (踏雪无痕) (UC技术博客)
  4. 手机备忘录怎么添加表格文件?
  5. .net core 使用swagger提示:Failed to load API definition.加载API定义失败
  6. 从P30P更换到Mate40P深度体验60天后:说几句心里话
  7. 三国塔防游戏android源码
  8. 张小白带你使用CentOS 7.6安装openGauss 2.0.1企业版
  9. 关于segmentation_models的一些总结
  10. 医学科研课题设计的分类