0
我在提升學習手冊::線程,他們說叫lock_upgrade()shared_mutex的是 該效果「當前線程阻塞,直到升級所有權可以爲當前線程得到。」。爲什麼要調用boost :: thread :: shared_mutex塊的lock_upgrade()?
但它爲什麼要阻止,因爲升級的所有權是沒有的獨家所有權嗎?
謝謝。
我在提升學習手冊::線程,他們說叫lock_upgrade()shared_mutex的是 該效果「當前線程阻塞,直到升級所有權可以爲當前線程得到。」。爲什麼要調用boost :: thread :: shared_mutex塊的lock_upgrade()?
但它爲什麼要阻止,因爲升級的所有權是沒有的獨家所有權嗎?
謝謝。
但是爲什麼它應該阻止,作爲升級所有權,它還不是獨佔所有權?
如果某人已經擁有獨佔所有權,那麼沒有人可以獲得共享或可升級的所有權;所以lock_shared
和lock_upgrade
都會在這種情況下阻塞。
而且,正如在評論中指出,只有一個線程可以有升級的所有權;所以lock_upgrade
也會阻止,如果有人已經有。
您是對的,作爲附加說明,一次只允許一個線程獲得可升級的所有權。如果另一個線程獲得了可升級的所有權,則對lock_upgrade的調用將被阻止。 –
@DaveS:謝謝,我不知道那個細節。 –