天天看点

Windows线程编程简记

//创建线程

CreateThread

DWORD WINAPI ThreadProc(LPVOID lpParameter);

GetExitCodeThread

WaitForMultipleObjects

TerminateThread //强行终止指定线程。注意:必须由程序员在设计该线程时自行保证该线程可以随时非正常终止,否则的话,嘿嘿,什么内存泄露,非法访问内存之类的问题就来了。不到万不得已,尽量不用。

//信号量

CreateSemaphore

ReleaseSemaphore

WaitForSingleObject

//WaitForSingleObject的返回值

WAIT_TIMEOUT //等了那么久,居然还是没有信号,可以选择再等几次。

WAIT_OBJECT_0 //OK!有信号了。

WAIT_ABANDONED //不用再等了,这个对象算是废了,等再多也没用!

//临界区

CRITICAL_SECTION g_cs;

InitializeCriticalSection(&g_cs);

DeleteCriticalSection(&g_cs);

EnterCriticalSection(&g_cs);

LeaveCriticalSection(&g_cs);

//原子操作

InterlockedExchangeAdd