Lv.的博客

随笔分类 -  Win32

摘要:线程状态在一个线程的生存期内,可以在多种状态之间转换。不同操作系统可以实现不同的线程模型,定义许多不同的线程状态,每个状态还可以包含多个子状态。但大体说来,如下几种状态是通用的: 就绪:参与调度,等待被执行。一旦被调度选中,立即开始执行。 运行:占用CPU,正在运行中。 休眠:暂不参与调度,等待特定... 阅读全文
posted @ 2015-05-09 10:13 Avatarx 编辑
摘要:什么是句柄:句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础... 阅读全文
posted @ 2015-05-08 15:52 Avatarx 编辑
摘要:#include#include//#include//#include#defineUM_MSG1(WM_USER+1)#defineUM_MSG2(WM_USER+2)DWORDWINAPIThread1(LPVOIDpara){DWORDdwThreadId=*(DWORD*)para;DWO... 阅读全文
posted @ 2015-05-08 15:46 Avatarx 编辑
摘要:内核对象的基本概念Windows系统是非开源的,它提供给我们的接口是用户模式的,即User-Mode API。当我们调用某个API时,需要从用户模式切换到内核模式的I/O System Services API。例如我们调用Kernel32.dll中的CreateFile创建文件,最终将执行ntdl... 阅读全文
posted @ 2015-05-08 15:37 Avatarx 编辑
摘要:Win32线程控制只有是围绕线程这一内核对象的创建、挂起、恢复、终结以及通信等操作,这些操作都依赖于Win32操作系统提供的一组API和具体编译器的C运行时库函数。本篇围绕这些操作接口介绍在Windows系统下的多线程编程要点,后续将进一步涉及多线程通信的同步互斥等议题。1.线程的创建(Create... 阅读全文
posted @ 2015-05-08 15:35 Avatarx 编辑
摘要:一.线程间数据通信系统从进程的地址空间中分配内存给线程栈使用。新线程与创建它的线程在相同的进程上下文中运行。因此,新线程可以访问进程内核对象的所有句柄、进程中的所有内存以及同一个进程中其他所有线程的栈。这样一来,同一个进程中的多个线程可以很容易的相互通信。到目前为止,将数据从一个线程传到另一个线程的... 阅读全文
posted @ 2015-05-08 15:33 Avatarx 编辑

点击右上角即可分享
微信分享提示