摘要:
1.多线程同步与多线程互斥的关系其实这也是我一直困扰的问题,在这里我只是说说我的理解。我的理解是多线程互斥是针对于多线程资源而言的。而多线程同步是针对于多线程时序问题。由于线程的并发性导致其运行时间的不确定性,所以我们需要控制多个线程的协同工作。还是举卖票的例子来区别互斥和同步的区别吧:比如我们有两... 阅读全文
摘要:
信号量说实话自己没怎么使用过。书上大概这样说,信号量设置一个资源访问计数。当该计数值大于0的时候,该信号量对象为有信号状态,当该计数值等于0的时候,该信号量对象为无信号状态。我们来查几个主要的API用于前面的卖票问题,信号量同步中主要函数包括以下几个:该函数用于创建一个信号量句柄,返回值即为该信号量... 阅读全文
摘要:
事件是一个内核事件,内核事件是什么呢,我理解也不深入也不好说,暂且理解为一个内核维护的数据类型吧通过内核事件同步主要的方法是对事件的信号有和无来进行同步。比如当我们一个线程进入一段临界代码(独占代码段,不可多个线程同时访问)那么这时候我们将事件对象设置为无信号状态。那么另外一个线程便会在等待这样一个... 阅读全文
摘要:
关键区对象为:CRITICAL_SECTION 当某个线程进入关键区之后,其他线程将阻塞等待,知道该线程释放关键区的拥有权。关键区同步主要有以下几个API初始化关键区对象,无返回值,传入一个关键区对象的指针。该函数在使用完关键区之后删除关键区对象,无返回值,同样传入一个关键区对象指针该函数为进入关键... 阅读全文