Stavo cercando di leggere l'implementazione di Synchronous Queue
Non è così semplice per me. Sembra che stia usando una lista collegata in cui ogni nodo è associato a una discussione.
E la parte principale utilizza un ciclo di rotazione in attesa di attività da inserire nella coda.
Mi chiedevo perché viene utilizzato un ciclo di spin invece di qualcosa come wait/notify
?
Ora in questo modo uno dei core è andato a causa di questo ciclo di rotazione costante, giusto?
Sto cercando di capire questo punto e ottenere una conoscenza approssimativa della progettazione del sincrono codaCercando di capire i meccanismi di una coda sincrona
UPDATE
Ciò che mi ha anche preoccupante è come i fili cameriere start/stop.
Questa è la base degli algoritmi lock-free - si noti che la rotazione viene eseguita solo quando c'è qualcosa da trasferire. trasferimento è fatto o se non c'è niente da fare, il metodo restituisce. – assylias
@assylias: Nella maggior parte delle parti di "TransferQueue.transferer' c'è un' continue' non un 'return'. C'è un ritorno in alcuni casi in cui caso non ho idea di cosa succede ai camerieri e quando/come si riavviano – Jim