下载此文档

windows体系编程3章.ppt


文档分类:IT计算机 | 页数:约43页 举报非法文档有奖
1/43
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/43 下载此文档
文档列表 文档介绍
第3章 Windows程序的执行单元——线程
多线程
线程的创建
线程内核对象
线程的终止
线程的优先级
C/C++运行期库
线程的创建
多线程并发执行,os为其轮流分配cpu时间片
一般情况,主线程接受用户输入,显示运行结果;新创建的线程来处理长时间的操作,如读写文件、访问网络等,这样即便程序忙于繁重的工作也可以由专门的线程响应用户命令
每个线程必须拥有入口点函数,主线程的为main。辅助线程入口点函数称为线程函数,定义如下:DWORD WINAPI ThreadProc(LPVOID lpParam);函数名称ThreadProc可以是任意的
线程的创建
#define WINAPI _stdcall;
_stdcall是新标准c/c++调用方法,与标准c调用_cdecl相比,参数进栈次序相同,从右到左,但_stdcall采用自动清栈方式,而_cdecl采用手工清栈方式。
由windows操作系统调用的函数(回调函数)必须声明为_stdcall
没有显示说明的话,为_cdecl调用方式
线程的创建
创建新线程用CreateThread
HANDLE CreateThread ( LPSECURITY_ATTRIBUTES lpsa, DWORD cbStack, LPTHREAD_START_ROUTINE lpStartAddr, LPVOID lpvThreadParam, DWORD fdwCreate, LPDWORD lpIDThread );
线程的创建
lpsa
[in] Ignored. Must be NULL. 指定线程安全属性
cbStack
[in] 指定线程堆栈大小,NULL为默认大小
lpStartAddr
[in]线程函数起始地址
lpvThreadParam
[in] Long pointer to a single 32-bit parameter value passed to the thread.
fdwCreate
[in] Specifies flags that control the creation of the thread. 0表示线程创建后立即运行
lpIDThread
[out] Long pointer to a 32-bit variable that receives the thread identifier. If this parameter is NULL, the thread identifier is not returned.
WaitForSingleObject
This function returns when the specified object is in the signaled state(受信状态) or when the time-out interval
DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds );
一个可执行对象有两种状态:未受信、受信。线程对象只有当线程结束才为受信态。
WaitForSingleObject
hHandle
[in] Handle to the object. For a list of the object types whose handles can be specified, see the Remarks section.
dwMilliseconds
[in] Specifies the time-out interval, in milliseconds. The function returns if the interval elapses, even if the object's state is nonsignaled. If dwMilliseconds is zero, the function tests the object's state and returns immediately. If dwMilliseconds is INFINITE, the function's time-out interval never elapses.
线程的创建
例子程序
线程内核对象
线程内核对象是一个包含了线程状态信息的数据结构。
每次对CreateThread的成功调用,系统都会在内部为新的线程分配一个内核对象。
系统对线程的管理是依靠访问线程内核对象来实现的。

windows体系编程3章 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数43
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小135 KB
  • 时间2018-01-08
最近更新