线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程能够有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。一个标准的线程由线程ID、当前指令指针(PC)、寄存器和堆栈组成。它是进程的一个执行单元,是进程内科调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。安全
线程同步是指多线程经过特定的设置(如互斥量,事件对象,临界区,信号量)来控制线程之间的执行顺序(即所谓的同步)也能够说是在线程之间经过同步创建起执行顺序的关系多线程
CreateThread() 建立一个新线程 ExitThread() 正常结束一个线程的执行 TerminateThead() 强制终止一个线程的执行 ResumeThread() 重启一个线程 SuspendThread() 挂起一个线程 GetExiCodeThread() 获得一个线程的退出码 GetThreadPriority() 获得一个线程的优先级 SetThreadPriority() 设置一个线程的优先级 CloseHandle() 关闭一个线程的句柄 CreateRemoteThread() 再另外一个进程中建立一个新线程 PostThreadMessage() 发送一条消息给指定的线程 GetCurrentThread() 获得当前的线程句柄 GetCurrentThreadId() 获得当前线程的ID GetThreadId() 获得指定线程的ID WaitForSingleObject() 等待单个对象 WaitForMultipleObjects()等待多个对象
临界区(Critical Section)是一段独占对某些共享资源访问的代码,在任意时刻只容许一个线程对共享资源进行访问。若是有多个线程试图同时访问临界区,那么在有一个线程进入后其余全部试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其余线程能够继续抢占,并以此达到用原子方式操做共享资源的目的。
临界区在使用时以CRITICAL_SECTION结构对象保护共享资源,并分别用EnterCriticalSection()和LeaveCriticalSection() 函数去标识和释放一个临界区。所用到的CRITICAL_SECTION结构对象必须通过InitializeCriticalSection()的初始化后才能使用,并且必须确保全部线程中的任何试图访问此共享资源的代码都处在此临界区的保护之下。不然临界区将不会起到应有的做用,共享资源依然有被破坏的可能。函数