有一个主线程和线程1,线程1有一个临界区,里面有几条语句,假设主线程暂停线程1时,线程1恰好执行在临界区内,请问,线程1会执行完这个临界区的内容,再暂停吗?

解决方案 »

  1.   

    不会的
    这个时候临界区将被Lock了
      

  2.   

    除非该线程Resume,否则临界区一直被锁定不能访问
      

  3.   

    >>请问,线程1会执行完这个临界区的内容,再暂停吗?
    操作系统是不会管一个线程是否在临界区这样的问题的,如果在内核执行暂停某个线程的操作的时刻,该线程正处于用户态(并非正在调用内核操作),则它马上进入被挂起状态,不论是否在临界区,况且,临界区只是一个逻辑概念,实施临界区的系统设施很多,操作系统不可能也不应该要求线程完成临界区才暂停