Memahami Fungsi java.lang.Thread.interrupt()
Apabila dipanggil, java.lang.Thread.interrupt() kaedah mengubah suai status atau bendera yang terganggu bagi utas yang disasarkan. Selepas itu, kod yang beroperasi dalam urutan sasaran ini boleh memeriksa secara berkala status yang terganggu dan bertindak balas dengan sewajarnya.
Terutamanya, kaedah penyekatan tertentu seperti Object.wait() mendapatkan serta-merta dan menghabiskan status yang terganggu, mencetuskan pengecualian yang sesuai (selalunya InterruptedException ).
Selain itu, adalah penting untuk ambil perhatian bahawa gangguan dalam Java kekurangan tingkah laku pre-emptive. Ini menunjukkan bahawa kedua-dua pemula sampukan dan utas terputus mesti mengambil bahagian secara aktif untuk memproses sampukan. Akibatnya, jika utas sasaran mengabaikan untuk meninjau status yang terganggu, gangguan itu dibuang dengan berkesan.
Untuk menyemak status yang terganggu, fungsi Thread.interrupted() boleh digunakan. Pendekatan ini secara serentak mendapatkan semula status terputus urutan semasa dan pemadaman yang mengganggu bendera. Selepas itu, benang biasanya bertindak balas dengan membuang InterruptedException atau menjalankan tindakan lain yang perlu.
Perlu juga diperhatikan bahawa kaedah API tertentu mempunyai pengendalian interupsi terbina dalam. Contohnya:
Gangguan benang ialah teknik halus yang digunakan untuk mendesak utas ke arah penamatan yang anggun. Berbanding dengan Thread.stop(), yang bertindak lebih seperti serangan mengejut pada rangkaian, gangguan menawarkan peluang untuk rangkaian keluar dengan bersih.
Atas ialah kandungan terperinci Bagaimanakah `Thread.interrupt()` Java Berfungsi dan Bagaimana Thread Membalas Gangguan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!