Nel mio programma ho due metodi:Serrature tra due metodi che muoiono di fame un metodo
public void methodA() { //gets called very often
//write something to file
}
public void methodB() {
//write something to file
}
methodA
viene chiamato dal cliente molto spesso, mentre methodB
viene chiamato solo di tanto in tanto. Tuttavia, devo assicurarmi che ogni volta che un cliente voglia chiamare il numero methodB
, può farlo (dopo l'eventuale esecuzione corrente di methodA
è terminata). Ho provato a introdurre un blocco sincronizzato con un oggetto di blocco all'interno di ogni metodo, tuttavia methodB
sembra morire di fame, dal momento che methodA
viene chiamato più spesso. Come posso risolvere questo problema?
use executor framework –
non è possibile utilizzare i semafori per proteggere le chiamate? – ha9u63ar
che tipo di dipendenza tra due metodi? – SMA