当前位置:C++技术网 > 资讯 > 几段简单的文字教你秒懂事件,信号量,互斥器三大线程同步函数

几段简单的文字教你秒懂事件,信号量,互斥器三大线程同步函数

更新时间:2016-03-01 22:32:39浏览次数:1+次

事件函数:
CreateEvent(点击可链接到百度百科查看代码用法详情)第二个参数的含义:
若为true,则需要手动添加ResetEvent函数将事件的状态恢复到无信号状态。如果设置为false,则不需要,因为当该线程结束后,系统会自动将事件的状态复原为无信号状态,WaitForSingleObject等待的是有信号状态才会触发执行,而后执行后面的代码,SetEvent使得状态有信号。


信号量函数:
CreateSemaphore(点击可链接到百度百科查看代码用法详情)参数的含义:
Semaphore的第二个参数决定是否执行WaitForSingleObject,若大于0,则触发执行之后的代码,ReleaseSemaphore函数则是使得计数递增


互斥器函数
CreateMutex (点击可链接到百度百科查看代码用法详情)函数的意义:
该函数的第二个参数决定谁执行WaitForSingleObject,若为true,则是主线程调用执行,其他线程不会执行。若为false,则看谁拥有WaitForSingleObject,因为这个函数的第一个参数就是互斥器对象,用完了记得释放互斥器函数对象,这样,别的线程如果也有WaitForSingleObject函数的话,就能调用执行之后的代码。(具体的互斥器工作机制请看《你真的懂了互斥器的运行机制吗?
》)