Rumah >Java >javaTutorial >Bagaimanakah Java's Thread.interrupt() Berfungsi dan Mengapa Ia Tidak Preemptive?
Java's Thread.interrupt() Didedahkan
Kaedah java.lang.Thread.interrupt() memainkan peranan penting dalam menguruskan gangguan thread di Jawa. Apabila dipanggil, ia menetapkan bendera yang menunjukkan bahawa utas sasaran harus menyemak statusnya yang terganggu.
Cara Gangguan Berfungsi
Gangguan bukan pre-emptive di Java. Sebaliknya, urutan sasaran mesti meninjau secara aktif statusnya yang terganggu. Untuk berbuat demikian, ia menggunakan Thread.interrupted(), yang mengembalikan status utas semasa dan mengosongkan bendera gangguan. Biasanya, utas yang terganggu kemudiannya akan mengendalikan gangguan dengan sewajarnya, seperti dengan membuang InterruptedException.
Mata Utama
Pengendalian Interrupted Pratakrif
Kaedah API tertentu, seperti Object.wait(), Thread.sleep(), Thread.join(), struktur java.util.concurrent, dan Java NIO, mempunyai pengendalian gangguan terbina dalam. Mereka menggunakan bendera interrupt dan melontarkan pengecualian yang sesuai (biasanya InterruptedException).
Sifat Bukan Preemptive
Adalah penting untuk ambil perhatian bahawa gangguan dalam Java ialah mekanisme bukan preemptif . Benang mempunyai pilihan sama ada untuk mengendalikan gangguan atau tidak. Pendekatan lembut ini membolehkan benang keluar dengan bersih apabila dikehendaki. Sebaliknya, kaedah seperti Thread.stop() menamatkan rangkaian secara paksa, yang boleh membawa kepada hasil yang tidak dapat diramalkan atau bermasalah.
Atas ialah kandungan terperinci Bagaimanakah Java's Thread.interrupt() Berfungsi dan Mengapa Ia Tidak Preemptive?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!