Apabila menghadapi benang jangka panjang yang mesti dihentikan pada pertengahan pelaksanaan, adalah penting untuk melakukannya dengan anggun untuk mengelakkan akibat yang tidak dapat diramalkan .
Untuk mencapai matlamat ini, pendekatan biasa ialah memperkenalkan pembolehubah kawalan dalam kaedah run() thread. Pembolehubah ini, biasanya bendera boolean, bertindak sebagai sentinel untuk menandakan permintaan penamatan.
Pertimbangkan contoh berikut:
class MyThread extends Thread { volatile boolean finished = false; public void stopMe() { finished = true; } @Override public void run() { while (!finished) { // Perform the necessary actions } } }
Dari urutan utama, anda boleh menghentikan pelaksanaan dengan anggun dengan memanggil kaedah stopMe():
MyThread myThread = new MyThread(); myThread.start(); // Wait some time to simulate work Thread.sleep(500); myThread.stopMe();
Sebelum ini, Java mempunyai kaedah stop(), tetapi ia telah diisytiharkan tidak selamat kerana potensinya merosakkan keadaan benang dan membuka kunci yang diperoleh. Oleh itu, menggunakan pendekatan pembolehubah kawalan ialah cara yang disyorkan untuk memastikan penamatan benang yang bersih dan terkawal.
Atas ialah kandungan terperinci Bagaimana untuk Menamatkan Benang Java dengan Anggun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!