VC++线程总结

来源:互联网 发布:华为哪里下载软件 编辑:程序博客网 时间:2024/06/16 10:40


1. 创建线程

HANDLE CreateThread(。。。)

2.暂停线程 

DWORD SuspendThread(HANDLE hThread);

3. 重启线程

DWORD ResumeThread(HANDLE hThread);

4. VOID ExitThread(DWORD dwExitCode);
该函数用于线程终结自身的执行,主要在线程的执行函数中被调用。其中参数dwExitCode用来设置线程的退出码。
5. BOOL TerminateThread(HANDLE hThread,DWORD dwExitCode);
一般情况下,线程运行结束之后,线程函数正常返回,但是应用程序可以调用TerminateThread强行终止某一线程的执行。
6. BOOL PostThreadMessage();

该函数将一条消息放入到定线程的消息队列中,并且不等到消息被该线程处理时便返回。

7.线程同步对象的使用;
同步对象有:Critical_section(临界区),Event(事件),Mutex(互斥对象),Semaphores(信号量)。都有相应的 API创建函数和MFC类,同步对象可以处于两种状态:信号状态(signal state)或非信号状态,当一个线程与某个对象相关联时,若该对象处于非信号状态,则要等到其变成信号状态线程才能继续执行。
WIN32 API提供了等待命令WaitForSingleObject和WaitForMutipleObjects:
如果在指定时间内对象达到 信号状态则返回WAIT_OBJECT_0,超时返回WAIT_TIMEOUT,出错返回 WAIT_FAILED。对于互斥量、信号量和自动重置(auto-reset)事件对象,等待成功时将它们改成非信号状态(信号量计数器减1),以实现对象的互斥访问。

原创粉丝点击