win32多线程.docVIP

  • 2
  • 0
  • 约7.29千字
  • 约 8页
  • 2016-09-23 发布于重庆
  • 举报
win32多线程

Win32 多线程的创建方法和基本使用 作者: gengshenghong (2 篇文章) 日期: 十二月 2, 2011 在 5:17 下午 Summary: 总结Win32提供的创建多线程相关的API接口和基本的使用框架。 Ref: MSDN: /zh-cn/library/y6h8hye8(v=VS.100) Win32多线程的创建方法主要有: (1)CreateThread() (2)_beginthread()_beginthreadex() (3)AfxBeginThread() (4)CWinThread类 (1)CreateThread() 百度百科:/view/1191444.htm 函数原型: view plaincopy to clipboardprint? 01.HANDLE CreateThread( 02.  LPSECURITY_ATTRIBUTES lpThreadAttributes, 03.  DWORD dwStackSize, 04.  LPTHREAD_START_ROUTINE lpStartAddress, 05.  LPVOID lpParameter, 06.  DWORD dwCreationFlags, 07.  LPDWORD lpThreadId); 08.} HANDLE CreateThread(   LPSECURITY_ATTRIBUTES lpThreadAttributes,   DWORD dwStackSize,   LPTHREAD_START_ROUTINE lpStartAddress,   LPVOID lpParameter,   DWORD dwCreationFlags,   LPDWORD lpThreadId); } 头文件:Windows.h CreateThread是Win32提供的创建线程的最基础的API,用于在主线程上创建一个线程。返回一个HANDLE句柄(内核对象)。 参数简要说明: lpThreadAttributes:线程属性,用于设置线程的属性,NULL表示使用默认的设置。dwStackSize:线程堆栈大小,使用0采用默认设置,windows会根据需要动态增加堆栈大小。lpStartAddress:指向线程函数的指针。lpParameter:向线程函数传递的参数。dwCreationFlags:线程标志,CREATE_SUSPENDED表示创建一个挂起的线程,0表示创建后立即激活线程。lpThreadId,先线程的ID(输出参数)。 创建线程的代码: view plaincopy to clipboardprint? 01.#include stdafx.h 02.#include 03. 04.DWORD WINAPI ThreadProc(LPVOID lpParam) 05.{ 06. printf(sub thread started\n); 07. printf(sub thread finished\n); 08. return 0; 09.} 10. 11.int main(int argc, char* argv[]) 12.{ 13. DWORD threadID; 14. HANDLE hThread; 15. hThread = CreateThread(NULL,0,ThreadProc,NULL,0,threadID); // 创建线程 16. 17. return 0; 18.} #include stdafx.h #include DWORD WINAPI ThreadProc(LPVOID lpParam) { printf(sub thread started\n); printf(sub thread finished\n); return 0; } int main(int argc, char* argv[]) { DWORD threadID; HANDLE hThread; hThread = CreateThread(NULL,0,ThreadProc,NULL,0,threadID); // 创建线程 return 0; } 如果直接使用上面的代码,那么很可能没有任何输出,这是由于主线程创建了子线程后主线程继续向下运行,子线程还没来得及执行里面的代码主线程可能就结束了。这就需要另一个API来进行同步:WaitForSingleObject()。 与之对应的还有WaitForMultipleObjects,用于同步一组内核对象。(参考/zh-cn/site/ms686360获取所有的同步函数(Synchronization Functions)的使用。 WaitForSi

文档评论(0)

1亿VIP精品文档

相关文档