线程是否锁定另一个线程?

时间:2012-02-27 07:35:35

标签: multithreading thread-safety pthreads

  
      
  1. Singularity - 如果某个线程设法锁定互斥锁,则确保 没有其他线程能够锁定线程 ,直到原始线程释放锁。

  2.   
  3. 非忙碌等待 - 如果线程试图锁定被第二个线程锁定的线程 ,则第一个线程将被挂起(并且将会不消耗任何CPU资源),直到第二个线程释放锁。此时,第一个线程将被唤醒并继续执行,并将互斥锁锁定。

  4.   

来自:使用POSIX线程进行多线程编程

问题:我认为线程会锁定互斥锁变量。线程不会锁定其他线程? 上面的粗体陈述是什么意思?一个线程如何锁定其他线程?

1 个答案:

答案 0 :(得分:2)

更正:

  1. 如果线程设法锁定互斥锁,则确保在原始线程释放锁之前,没有其他线程能够锁定mutex

  2. 非忙碌等待 - 如果线程试图锁定被第二个线程锁定的mutex,则第一个线程将被挂起(并且不会占用任何CPU资源),直到锁定为止由第二个线程释放。此时,第一个线程将被唤醒并继续执行,并将互斥锁锁定。

  3. 无论你在互联网上看到什么,你都不会理所当然地认为这是一件好事,我也赞不绝口地注意你所读的内容。