第二讲:多任务与多线程编程内容摘要:

则线 程在创建后即被挂起 . 被挂起的线程直到 其它线程调用 ResumeThread()函数时 ,此线 程才能继续执行 . 线程的终止 *线程调用 ExitThread 终止 ,则所有附属于 DLL的入口点函数用一个 指示线程从 DLL解脱的代码激活 . *线程函数返回 ,即线程隐含调用了 ExitThread. *函数原形为 VOID ExitThread(UNIT fuExitCode). *这个函数为调用该函数的线程设置了退出 码 fuExitCode后 ,就终止该线程 . *函数 ExitProcess 被进程的任一线程显示或隐含 调用 . *用线程的句柄调用 Terminate Thread , 此时 Windows不通知 DLL. *用进程句柄调用 TerminateProcess. *调用全局函数 AfxEndThread. 线程的操作和管理 线程运行状态的设置 dwCreatFlags指示线程的运行状态 ,若为 0线程启动时立即执行 ,若为 CREAT_SUSPEN DED则线程被挂起 . SuspendThread()将活动线 程自身挂起 ,而一个活动线程通过调用 Resume Thread() 减少挂起计数以唤醒一个被挂起的线程 . API函数 ::Sleep()使自身休眠 ,在一定时间后 线程被自动唤醒 .函数原型为 : Sleep(DWORD dwMilliseconds)。 注 :Sleep(0)可以暂时挂起自身 ,以运行同优先级 线程 . 线程的优先级 线程优先级设置是根据线程优先级和拥有该线 程的进程优先级来设置的 ,最终基本优先级别在 0到 31之间的数值 .线程优先级有 7类 : THREAD_PRIORITY_IDLE THREAD_PRIORITY_LOWEST THREAD_PRIORITY_BELOW_NORMAL THREAD_PRIORITY_NORMAL THREAD_PRIORITY_ABOVE_NORMAL THREAD_PRIORITY_HIGHEST THREAD_PRIORITY_CRITICAL 在线程的最终优先级中 ,0~15级是普通优先级 , 高优先级线程先运行 ,之后才是低级别线程。 同等级别的线程按时间片轮流运行 . 16~30级别是实时优先级 ,同普通优先级不同的 是 :同级别的线程不按时间片轮流 ,而是先控制 CPU的线程独占 ,除非它放弃控投制 ,否则同等 级别或低级别的线程无法运行 . 设置改变优先级函数 : BOOL SetThreadPriority (int nPriority)。 获得线程优先级函数 : GetThreadPriority() 线程间的通信 对于线程和主应用程序之间的通讯可以通过消息 的发送与处理来。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。