C++多线程实例(线程的建立—调度—正确结束)
来源:互联网 发布:js 字符串以标签分割 编辑:程序博客网 时间:2024/05/17 08:44
C++中的多线程编程时一个非常复杂的东西,使用过程中一定要注意线程的调度和结束。那么为什么要用多线程呢?举一个例子,界面里有个按钮,按钮按下后,这个操作需要非常长的时间才能完成,那么在操作未完成之前,会将界面卡死,无法进行其他操作,这就是需要多线程的原因,一个主线程维持界面的运行,其他的线程在后台运行,进行其他需要的操作。
首先,要定义线程句柄:
//线程句柄
HANDLE hThreadRadar;
然后对线程进行声明:
//线程函数定义的声明
void RadarDataWriteThread();
编写线程函数的过程中,线程内部一般是while构成的死循环,其中ThreadRunFlag是一个自己定义的volatileBOOL类型的标志位,这个变量也可以不定义,但是为了控制进程的运行,方便进行线程的调度
//决定线程是否运行的Flag标志位
volatile BOOL ThreadRunFlag;
while(ThreadRunFlag )
{
//里面写着你需要进行的操作
}
然后,在程序需要的位置开启线程:
//开启数据回放线程
hThreadRadar= CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)RadarDataWriteThread,NULL,0,NULL);
//关闭句柄占用
CloseHandle(hThreadRadar);
开启完线程之后,立即关闭线程句柄,目的是进行资源释放,句柄关闭后,线程仍在运行,在程序关闭的代码中,需要结束所有的线程,一般是在on close或者on destroy中进行响应:
//结束所有线程
TerminateProcess(GetCurrentProcess(),0);
- C++多线程实例(线程的建立—调度—正确结束)
- windows多线程基础(3):如何正确结束线程
- 线程的正确结束方式
- 多线程——停止线程(结束run方法)
- 27、Java入门—多线程之线程的正确停止
- 多线程编程(二)——线程结束后的处理&主服务存活方法
- 线程池 多线程运行结束后 如何关闭? ExecutorService的正确关闭方法
- Android java 结束线程的正确操作
- 多线程 —— 代码安全以后,对线程调度的控制(等待-唤醒机制)
- Java多线程-线程的调度
- rxjava线程调度的正确使用姿势
- Java多线程-线程的调度(守护线程)
- Win32多线程之等待一个线程的结束(WaitForSingleObject)
- Java多线程-线程的调度(守护线程)
- java多线程:线程的调度-守护线程
- Java多线程 -- 线程的调度-守护线程
- Java多线程-线程的调度(守护线程)
- Android线程结束——合理的结束你想结束的线程
- mac环境下使用emacs开发scala
- 佳域G4厚电标准版刷机包 移植ColorOS 2.0全网首发 流畅体验
- 程序员遇到bug后的七种反应
- C++按行读取txt示例
- MS08-067
- C++多线程实例(线程的建立—调度—正确结束)
- 有源汇有上下界的最大流
- OpenCV视频读取播放,视频转换为图片
- POJ 1273 - Drainage Ditches (网络流)
- 贪心法-c语言的规则
- JBOSS EAP 6 系列九 Cluster负载均衡集群
- Wowza拉rtmp流进行收录
- Ogre 中基于蒙皮骨骼的OBB碰撞检测
- poj 2486 树形dp