1
這似乎是一個沒有道理的,但只是想檢查這是否有保證(在Linux上)。在滿足等待條件之前是否排除線程調度?或者線程會按計劃進行安排,找出它仍在等待並再次yield(),浪費資源?等待互斥量,條件變量或I/O是否自動產生()線程?
我問的原因是,如果我有X個線程正在運行,並且某些線程因任何原因被阻塞,被阻塞的線程是否會阻塞可運行線程(假設它們具有相同的優先級)?
這似乎是一個沒有道理的,但只是想檢查這是否有保證(在Linux上)。在滿足等待條件之前是否排除線程調度?或者線程會按計劃進行安排,找出它仍在等待並再次yield(),浪費資源?等待互斥量,條件變量或I/O是否自動產生()線程?
我問的原因是,如果我有X個線程正在運行,並且某些線程因任何原因被阻塞,被阻塞的線程是否會阻塞可運行線程(假設它們具有相同的優先級)?
是的,他們在等待而不消耗任何CPU資源。只有螺旋鎖纔會忙着等待。