阅读背景:

pthread中的互斥锁、条件变量与读写锁

来源:互联网 

  上过操作系统课程的同学应该都知道在线程,管理各个线程运行,实现对资源的互斥访问的时候有一个互斥锁mutex,主要防止在OS对线程进行切换的时候,由于每个线程执行的语句的深度不一样,结果导致对某些共享量的操作乱套了,实际上是因为在重新载入线程时,恢复上下文导致了原本已经修改过的变量又一次被原来的值所替代(相当于这个变量对于当前线程而言没有发生变化,实际上已经变了,解释可能不准确,不单单只有这种情况)。所以就有了互斥锁,在对一个共享资源访问的时候,严格保证一次只有一个线程能够获得这个资源的使用权,因此就不会出现多个线程同时操作同一资源的情况,也就搞定了共享的问题。但是与此同时,又涉及到一个效率的问题,如果一个线程拿着锁,另一个线程一直在那儿等着也不是回事,不停地询问这把锁的使用权(是不是到我啦),所以出现了条件变量来提高效率。  上过操作系统课程的同学应该都知道在线程,管理各个线程运行,实现对资源的互斥访问的时候有一个




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: