第一章
合作型多任务:程序控制CPU资源 抢占式多任务:操作系统控制CPU资源
win32核心对象:
进程、线程、文件、事件、信号量、互斥器、管道
GDI对象和核心对象区别
GDI对象有单一的拥有者,不是进程就是线程。核心对象可以有一个以上的拥有者。
Closehandle
进程结束之前,针对它所打开的内核对象,都会自动调用closehandle。最好是是不要依赖这机制,在不使用核心对象时主动调用closehandle.
closehandle的唯一作用是使引用计数减1,其他的什么不会做。只要是不再和核心对象有联系,就调用closehandle。
主线程:
1. 负责GUI程序中的主消息循环
2. 主线程结束(返回或者是调用ExitThread)会强制所有子线程结束,这样子线程得不
到执行清理工作的机会。因此,主线程要等待子线程结束。
线程ID和线程handle的区别
●线程的句柄和id是不同的。
在windows系统中,线程的id是唯一对应的,也就是说,如果两个线程返回相同的id,则他们必然是同一线程,反之一定是不同的线程。而线程的句柄并不是线程的唯一标识,线程的句柄只是用来访问该线程的的一个32位值,尽管相同的句柄一定标识同一线程,但同一线程可能拥有两个打开的句柄,因此,不能用句柄来区分两个线程是否是同一线程。
●ID是在Windows系统范围内唯一标示Thread的。
●Handle是用来操作Thread的,可以有多个,每个HANDLE可以有不同的操作权限,在
●Handle是用来操作Thread的,可以有多个,每个HANDLE可以有不同的操作权限,在
不同进程OpenThread得到的值不一样。
●线程的ID是系统全局的,其HANDLE是进程局部的.
●线程的ID是系统全局的,其HANDLE是进程局部的.
●此ID只在线程的生存期内有效。
API:
CreateThread
GetExitCodeThread 获取线程的退出码
ExitThread 从当前的线程退出
浙公网安备 33010602011771号