notify_one()
della libreria di thread C ++ 11 viene utilizzato per sbloccare uno dei thread in attesa.
Come sceglie quale thread sbloccare?
Per cominciare, ho provato a cercare su Google, ma non ho trovato nessuna risposta appropriata (nemmeno sulla rete Stack Exchange), anche se ho letto da qualche parte che la selezione del thread è "non specificata".
Quindi ho deciso di verificare le specifiche C ++ e ho fatto riferimento al paragrafo 30.5.1 della bozza di lavoro di novembre 2014 (disponibile gratuitamente), ha detto
Effects: If any threads are blocked waiting for
*this
, unblocks one of those threads.
Chiaramente, anche le specifiche non menzionano su cosa si basa la selezione, quindi ho deciso di porre questa domanda.