【问题标题】:Can a thread be logically interruptible while waiting for a mutex?线程在等待互斥体时可以在逻辑上中断吗?
【发布时间】:2016-04-12 14:18:47
【问题描述】:

我在阅读 R&R 的 Unix 系统编程时,遇到了一个关于互斥锁的问题。对于该书中所述的以下段落。当他说等待互斥锁的线程在逻辑上不可中断时,这是否意味着当线程等待互斥锁时,它将无法进行上下文切换?有人可以详细说明吗?

等待互斥锁的线程在逻辑上不可中断,除非 通过终止进程,终止线程 pthread_exit(来自信号处理程序),或异步取消 (通常不使用)。

【问题讨论】:

    标签: multithreading unix thread-safety pthreads mutex


    【解决方案1】:

    不,这并不意味着它不能进行上下文切换。相反,等待已获取的互斥锁的线程几乎总是上下文切换,可能在短暂延迟之后。

    这意味着pthread_mutex_lock() 调用不会返回EINTR 或类似的 - 它要么成功获取互斥锁,要么返回持续失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多