In informatica, e in particolare nei sistemi software concorrenti, l'espressione busy waiting o busy wait (letteralmente "attesa impegnata", più spesso tradotto come "attesa attiva") indica una tecnica di sincronizzazione per cui un processo o un thread che debba attendere il verificarsi di una certa condizione (per esempio la disponibilità di input dalla tastiera o di un messaggio proveniente da un altro processo) lo faccia verificando ripetutamente (ciclicamente) tale condizione. Questo approccio è alternativo all'uso di una sospensione del processo e del suo successivo risveglio tramite un segnale specifico (per esempio un interrupt nel caso dell'input da tastiera).
Nell'ingegneria del software si tende a evitare l'impiego del busy waiting laddove possibile; questa tecnica, infatti, presenta lo svantaggio di impegnare la CPU, in quanto ogni iterazione del ciclo di busy wait comporta l'esecuzione delle istruzioni che costituiscono la verifica della condizione attesa. La tecnica viene invece impiegata frequentemente nella progettazione dell'hardware.
Voci correlate
[modifica | modifica wikitesto]- La tecnica dello spinlock è l'applicazione del busy waiting all'attesa di rilascio di un lock
- Il polling è la verifica ciclica dello stato delle periferiche di un computer