多线程API总结
Posted liu6666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程API总结相关的知识,希望对你有一定的参考价值。
CreateThread创建线程,成功返回线程句柄,失败返回NULL
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes, //指向SECURITY_ATTRIBUTESX形态的结构指针。NULL为使用默认安全性
DWORD dwStackSize, //设置初始栈大小,以字节为单位,如果为0,那么默认使用与调用该函数的线程相同的栈空间大小
LPTHREAD_START_ROUTINE lpStartAddress,//指向线程函数的指针,函数名没有限制 形式:DWORD WINAPI ThreadProc(LPVOID lpParam)
LPVOID lpParameter, //向线程函数传递的参数,是一个void*指针,不需要传递参数时为NULL(线程处理函数)
DWORD dwCreationFlags,//线程标志
LPDWORD lpThreadId //保存新线程ID,若不想返回线程ID,设为NULL(这是返回值)
CreateThread在主线程基础上创建一个新线程。
获取线程ID
DWORD WINAPI GetCurrentThreadId(VOID);//返回获取当前的线程ID
关闭线程句柄
BOOL CloseHandle(HANDLE hObject);
//关闭一个线程句柄,引用计数减1,表示我部队这个句柄对应的线程做任何干预,
//但并没有结束线程
挂起指定线程:SuspendThread
DWORD WINAPI SuspendThread(HANDLE hThread);
恢复被挂起的线程:ResumeThread
DWORD WINAPI ResumeThread(HANDLE hThread);
休眠线程:Sleep
VOID WINAPI Sleep(DWORD dwMilliseconds);//dwMilliseconds表示毫秒数
WaitForSingleObject等待一个内核对象变为已通知状态
DWORD WaitForSingleObiect(HANDLE hObject,DWORD dwMilliseconds);
hObject:指明一个内核对象的句柄
dwMilliseconds:等待时间,毫秒数
通俗的讲线程函数没结束就出局未通知状态,已结束就处于已通知状态
以上是关于多线程API总结的主要内容,如果未能解决你的问题,请参考以下文章