"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 |
---|---|
|
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. |
|
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.
GO TO FULL VERSION