多线程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总结的主要内容,如果未能解决你的问题,请参考以下文章

java多线程技术总结

Java进阶之光!2021必看-Java高级面试题总结

经验总结:Java高级工程师面试题-字节跳动,成功跳槽阿里!

多线程 Thread 线程同步 synchronized

学习java第19天个人总结

号称史上最全Java多线程与并发面试题总结—基础篇