多线程编程,在不同的编程语言或库下面有不同的 多线程方法。
如 MFC下的 pThread = AfxBeginThread(mythread2, (LPVOID)this, NULL); 不太好用。
下面是C++标准库下的多线程编程方法,多线程编程一般都与信号关联,通过信号来决定线程的启动、挂起、重启、关闭等。
主要有这几个函数
1、创建一个信号 Handle hEvent = CreateEvent(NULL,true,true,NULL);
2、创建一个线程 Handle hThread = CreateThread(NULL, 0, InitThreadProc, this, 0, &m_dwThreadID);
3、SetEvent(m_hEvent);设置信号,有信号状态
4、ResetEvent(m_hEvent);重置信号,无信号状态
5、Dword dwStatus = WaitForSingleObject(m_hEvent, INFINITE);等待一个信号,ININITE无限等下去,直到有信号接受,返回;若是0,马上返回。
6、ColseHandle(m_hThread);//关闭一个线程。
7、GetExitCodeThread(m_hThread, &dwCode);获取一个已终止线程的退出代码,非0表示成功,0表示失败,会设置GetLastError().
类中也可以设置一些参数,当类的局部变量,供类使用。
基本上C++的多线程编程就这么多,总之线程和信号的连接使用,变化多端。
时间: 2024-10-13 02:25:06