"Halo, Amigo! Sampeyan kudu ngakoni manawa ide Batal Ellie pancen apik banget."

"Ya wis."

"Satemene, ana sing padha ing kelas Utas . Mung variabel kasebut ora diarani isCancel . Iki diarani isInterrupt . Lan cara sing digunakake kanggo mungkasi thread ora mbatalake () . Iku interrupt () ."

"Tenan?"

"Iyo. Priksa:"

Kode Katrangan
class Clock implements Runnable
{
public void run()
{
Thread current = Thread.currentThread();

while (!current.isInterrupted())
{
Thread.sleep(1000);
System.out.println("Tick");
}
}
}
Amarga sawetara Utas bisa nelpon cara mbukak ing obyek Jam padha, kita njaluk obyek Utas kanggo Utas saiki .

Kelas Jam nulis tembung "Obah" menyang console sapisan sapisan anggere variabel isInterrupt thread saiki palsu.

Nalika isInterrupt dadi bener , cara run  bakal mandheg.

public static void main(String[] args)
{
Clock clock = new Clock();
Thread clockThread = new Thread(clock);
clockThread.start();

Thread.sleep(10000);
clockThread.interrupt();
}
Utas utama miwiti benang anak (jam) sing kudu mlaku ing salawas-lawase.

Enteni 10 detik lan  mbatalake tugas kanthi nelpon metode interupsi .

Utas utama ngrampungake karyane.

Utas jam mungkasi karyane.

Kajaba iku, metode turu , sing disenengi wong akeh ing puteran tanpa wates ing cara roto , kanthi otomatis mriksa variabel isInterrupt . Yen thread nelpon cara turu , cara pisanan mriksa apa isInterrupt bener kanggo thread kasebut. Yen bener, cara kasebut ora bakal turu. Nanging, mbuwang pangecualian InterruptedException .

"Yagene mbuwang pangecualian? Apa ora luwih apik yen mung sijine isInterrupted () tinimbang isCancel () ing daur ulang?"

" Kaping pisanan , cara mbukak ora mesthi duwe loop. Cara kasebut bisa uga kalebu sawetara rolas telpon menyang metode liyane. Banjur sampeyan kudu nambah mriksa isInterrupted sadurunge saben telpon metode."

" Kapindho , sawetara cara sing kalebu macem-macem tumindak bisa uga mbutuhake wektu sing suwe kanggo dieksekusi."

" Katelu , mbuwang pangecualian ora ngganti mriksa isInterrupted. Iku mung tambahan trep. Pangecualian di buwang ngijini sampeyan kanggo cepet unwind tumpukan telpon bali menyang cara mbukak dhewe."

" Kapat , cara turu digunakake akeh. Pranyata cara mbiyantu iki ditambahake dening mriksa implisit sing ora kurang mbiyantu. Kaya-kaya ora ana sing khusus nambah mriksa, nanging ana. Iki super larang nalika sampeyan nggunakake kode wong liya lan sampeyan ora bisa nambah mriksa dhewe."

" Kalima , mriksa tambahan ora ngrusak kinerja. Nelpon cara turu tegese thread ngirim ora nindakake apa-apa (kajaba turu), supaya karya ekstra ora ngganggu sapa."

"Iki bantahan serius."

"Lan, pungkasane , ana iki: Cara mlaku sampeyan bisa nelpon kode wong liya - kode sing sampeyan ora bisa ngakses (kode sumber lan/utawa hak kanggo ngganti kode). Bisa uga ora ana pamriksan sing diganggu, lan bisa uga nggunakake. " coba ... nyekel (Exception e) " kanggo nyekel kabeh pengecualian."

Ora ana sing bisa njamin yen thread bakal mandheg. Mung thread bisa mandheg dhewe.