[question] wait_for_butex 还是有可能会让正在执行的pthread陷入内核?
ilixiaocui opened this issue · comments
是的,可能会陷入内核,但是即便不发起任何syscall也有可能被内核调度走呀
是的,可能会陷入内核,但是即便不发起任何syscall也有可能被内核调度走呀
主要是看到这里的疑问:也就是使用butex也还是有概率会导致pthread被挂起的?但是由于这里的临界区很小,被挂起的概率就小很多?
这里想表达的是: 如果一个bthread阻塞在butex上,它会被添加到butex的等待队列,不论它将要等待多久,这个pthread在操作完之后都可以立即去继续执行其他bthread,反之如果阻塞在mutex上,这个就需要等待mutex被释放之后才能继续执行其他bthread。前面的case pthread 被阻塞的概率和时长,与这个butex被释放的时间无关。
这里想表达的是: 如果一个bthread阻塞在butex上,它会被添加到butex的等待队列,不论它将要等待多久,这个pthread在操作完之后都可以立即去继续执行其他bthread,反之如果阻塞在mutex上,这个就需要等待mutex被释放之后才能继续执行其他bthread。前面的case pthread 被阻塞的概率和时长,与这个butex被释放的时间无关。
了解了 感谢 ~