Paradigmi di comunicazione tra thread

Esistono molti modi in cui i thread possono comunicare tra loro. Alcuni tra i più comuni sono:

Note:

Signal

Un signal consente a un thread di attendere un segnale inviato da un thread. Un segnale è solo un’indicazione di un evento, un’informazione di controllo: non contiene particolari dati

Tradizionalmente, ci sono due tipi di segnali:

Nel meccanismo dei signal, si identificano due ruoli ben distinti:

Spesso si tratta di thread diversi. Perciò, a livello di implementazione, è utile separare l’interfaccia del thread che invia dall’interfaccia di quello che aspetta. In questo modo ogni thread può chiamare l’operazione più appropriata per il suo suoro:

public interface SignalSender {
	void send();
}

public interface SignalWaiter {
	void waits() throws InterruptedException;
}