[ me-tuzalem @ 15.11.2004. 10:07 ] @
Naslov teme nije baš najprecizniji, ali evo o čemu se radi. Imam jednu klasu koja je singleton(pattern). U njoj su dve metode npr. posaljiZahtev()... primiOdgovor()... U aplikaciji kreiram odvojene Threadove koji koriste ovu singleton klasu, tj. njenu jedinu instancu. Zahtevi se generisu u okviru jednog threada, a odgovor u okviru drugog i to asinhrono. Problem mi je sa sinhronizacijom hvatanja odgovora. Kada odgovor stigne bez zahteva jednostavno ga odbacim. Ali kada je zahtev poslat, hoću da sačekam odgovor pre nego što prihvatim sledeći zahtev. Želim da u posaljiZahtev() ubacim čekanje na odgovor. Probao sam sa wait() a u primiOdgovor() sa: notifyAll() ali mi javlja:IllegalMonitorStateException - the current thread is not the owner ... i to u svim slučajevima, bez obzira u kom Threadu sam inicijalno instancirao singleton. Nisam želeo da koristim suspend() i resume() iako bih verovatno izbegao deadlock, ali ne volim depreciated metode. Ima li neko ideju kako da ovo prevaziđem ? |