您现在的位置是:首页 > 数码 > 

多线程笔记4

2025-07-19 09:08:11
多线程笔记4 第五章:不要让线程成为脱缰野马 1.干净的终止一个线程  (1)BOOL TerminateThread(HADLE hThread, DWORD dwExitCode)//dwExitCode:线程结束代码。 线程在结束前没有机会清理自己,且堆栈不会释放,产生内存泄露。相关的DLLs没有机会获得”线程解除附着”的通知。这

多线程笔记4

第五章:不要让线程成为脱缰野马

1.干净的终止一个线程

 (1)BOOL TerminateThread(HADLE hThread, DWORD dwExitCode)//dwExitCode:线程结束代码。

线程在结束前没有机会清理自己,且堆栈不会释放,产生内存泄露。相关的DLLs没有机会获得”线程解除附着”的通知。这是一个危险的函数,非不得已的情况不用。

(2)使用信号(Signals),行不通。

()跨越线程,丢出异常。win2API中没有什么标准方法可以把一个异常情况丢到另一个线程中。

(4)设立一个标记:使用一个手动重置(manual-reset)的 event 对象。Worker 线程可以检查该event 的状态或是等待它。

2.线程优先权

(1)以进程的“优先权类别(priority class)”、线程的“优先权层级 (priority level)”和操作系统当时采用的“动态提升(Dynamic Boost)”作为计算基准。拥有最高优先权之线程,即为下一个将执行起来的线程.如果优先权相同,则轮流调度。

(2)4个优先权类别 ,两个相关函数:SetPriorityClass,GetPriorityClass

HIGH_PRIORITY_CLASS 1

IDLE_PRIORITY_CLASS 4

ORMAL_PRIORITY_CLASS  7 or 8

REALTIME_PRIORITY_CLASS 24

()7个优先权层级

THREAD_PRIORITY_HIGHEST 2

THREAD_PRIORITY_ABOVE_ORMAL 1

THREAD_PRIORITY_ORMAL 0

THERAD_PRIORITY_BELOW_ORMAL -1

THREAD_PRIORITY_LOWEST -2

THREAD_PRIORITY_IDLE    set to 1

THREAD_PRIORITY_TIME_CRITICAL  set to 15

BOOL SetThreadPriority(HADLE hThread, int nPriority);

int GetThreadPriority(HADLE hThread);

(4)动态提升

.初始化一个线程

(1)初始化理由:调整优先权;绑核等。

(2)CreateThread()第五个参数设为CREATE_SUSPEDED

()DWORD ResumeThread(HADLE hThread)//执行一个线程

(4)DWORD SuspendThread(HADLE hThread)//挂起一个 线程

转载于:.html

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/731254.html

相关标签:无
上传时间: 2023-12-02 18:32:13
留言与评论(共有 14 条评论)
本站网友 臭虫图片
20分钟前 发表
int nPriority); int GetThreadPriority(HADLE hThread); (4)动态提升 .初始化一个线程 (1)初始化理由:调整优先权;绑核等
本站网友 儿童营养餐
23分钟前 发表
相关的DLLs没有机会获得”线程解除附着”的通知
本站网友 seed3
21分钟前 发表
这是一个危险的函数
本站网友 自助建站软件
23分钟前 发表
拥有最高优先权之线程,即为下一个将执行起来的线程.如果优先权相同
本站网友 寿险规划师
11分钟前 发表
(4)设立一个标记:使用一个手动重置(manual-reset)的 event 对象
本站网友 大禹城邦
8分钟前 发表
GetPriorityClass HIGH_PRIORITY_CLASS 1 IDLE_PRIORITY_CLASS 4 ORMAL_PRIORITY_CLASS  7 or 8 REALTIME_PRIORITY_CLASS 24 ()7个优先权层级 THREAD_PRIORITY_HIGHEST 2 THREAD_PRIORITY_ABOVE_ORMAL 1 THREAD_PRIORITY_ORMAL 0 THERAD_PRIORITY_BELOW_ORMAL -1 THREAD_PRIORITY_LOWEST -2 THREAD_PRIORITY_IDLE    set to 1 THREAD_PRIORITY_TIME_CRITICAL  set to 15 BOOL SetThreadPriority(HADLE hThread
本站网友 芝华士沙发官方网站
4分钟前 发表
产生内存泄露
本站网友 松花蛋不能和什么一起吃
19分钟前 发表
线程在结束前没有机会清理自己
本站网友 婴儿喂奶时间
8分钟前 发表
则轮流调度
本站网友 消除眼袋手术
22分钟前 发表
(2)使用信号(Signals),行不通
本站网友 莫比怎么抓
19分钟前 发表
这是一个危险的函数
本站网友 技能型人才
23分钟前 发表
产生内存泄露
本站网友 高级护理学校
6分钟前 发表
产生内存泄露