多核程序设计课件.pptVIP

  • 1
  • 0
  • 约1.61万字
  • 约 78页
  • 2024-02-28 发布于湖北
  • 举报

.Win32线程同步的实现—CriticalSectionWin32线程同步的实现—Mutexes Mutex对象的状态在它不被任何线程拥有时才有信号,而当它被拥有时则无信号。Mutex对象很适合用来协调多个线程对共享资源的互斥访问。 可按下列步骤使用该对象: 首先,建立互斥体对象,得到句柄: HANDLECreateMutex(); 然后,在线程可能产生冲突的区域前(即访问共享资源之前)调用 WaitForSingleObject,将句柄传给函数,请求占用互斥对象: dwWaitResult=WaitForSingleObject(hMutex,5000L); 共享资源访问结束,释放对互斥体对象的占用: ReleaseMutex(hMutex); 互斥体对象在同一时刻只能被一个线程占用,当互斥体对象被一个线程占用时,若有另一线程想占用它,则必须等到前一线程释放后才能成功。Win32线程同步的实现—MutexesWin32线程同步的实现—Mutexes(续)Win32线程同步的实现—Semaphore信号对象允许同时对多个线程共享资源进行访问,在创建对象时指定最大可同时访问的线程数。当一个线程申请访问成功后,信号对象中的计数器减一,调用ReleaseSemaphore函数后,信号对象中的计数器加一。其中,

文档评论(0)

1亿VIP精品文档

相关文档