Rumah >Java >javaTutorial >Di Jawa, bolehkah kita memanggil kaedah wait() tanpa memperoleh kunci?
Anda tidak boleh memanggil kaedah tunggu() tanpa mendapatkan kunci. Di Java, setelah kunci diperoleh, kita perlu memanggil kaedah wait() pada objek (boleh dengan atau tanpa tamat masa). Jika kita cuba memanggil kaedah wait() tanpa mendapatkan kunci, ia mungkin membuang java.lang.IllegalMonitorStateException pengecualian.
public class ThreadStateTest extends Thread { public void run() { try { <strong> </strong>wait(1000); } catch(InterruptedException ie) { ie.printStackTrace(); } } public static void main(String[] s) { ThreadStateTest test = new ThreadStateTest(); <strong> </strong>test.start(); } }
Dalam contoh di atas, kita perlu memanggil kaedah wait() tanpa memperoleh kunci, yang akan menghasilkan IllegalMonitorStateException pada masa jalan. Untuk menyelesaikan masalah ini, kita perlu memperoleh kunci sebelum memanggil kaedah tunggu() dan mengisytiharkan kaedah run() disegerakkan.
Exception in thread "Thread-0" java.lang.IllegalMonitorStateException at java.lang.Object.wait(Native Method) at ThreadStateTest.run(ThreadStateTest.java:4)
Atas ialah kandungan terperinci Di Jawa, bolehkah kita memanggil kaedah wait() tanpa memperoleh kunci?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!