Kawalan Benang dalam Java: Memulakan, Menghentikan dan Memulakan Semula
Memulakan utas adalah semudah mencipta contoh kelas Benang dan memanggil kaedah mula (). Urutan kemudian akan melaksanakan kod dalam kaedah run()nya.
Memberhentikan benang, walau bagaimanapun, bukanlah semudah itu. Sebaik sahaja benang dimulakan, tidak ada cara langsung untuk menghentikannya. Sebaliknya, anda boleh menggunakan teknik untuk memberitahu urutan bahawa ia harus berhenti melaksanakan.
Satu pendekatan biasa ialah menggunakan bendera boolean untuk menunjukkan sama ada utas harus terus berjalan. Dalam kaedah run() benang, anda boleh menyemak bendera dengan kerap dan menamatkan pelaksanaan apabila ia ditetapkan kepada palsu.
<code class="java">// Task.java private boolean isRunning = true; @Override public void run() { while (isRunning) { // Perform tasks here } } public void stop() { isRunning = false; }</code>
Memulakan Semula Benang
Memulakan semula thread bermaksud mencipta contoh baharu kelas Thread dan memulakannya. Ini kerana benang tidak boleh digunakan semula setelah ia berhenti. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa mana-mana data atau keadaan yang dikekalkan oleh urutan asal tidak akan dipindahkan ke urutan baharu.
Pilihan 1: Cipta Benang Baharu
<code class="java">Thread taskThread = new Thread(new Task()); taskThread.start(); // Later, to restart the thread... taskThread = new Thread(new Task()); taskThread.start();</code>
Pilihan 2: Maklumkan dan Mulakan Semula
<code class="java">// Task.java private Object lock = new Object(); @Override public void run() { while (true) { synchronized (lock) { if (shouldStop) { try { lock.wait(); } catch (InterruptedException e) {} } } // Perform tasks here } } public void stop() { synchronized (lock) { shouldStop = true; lock.notify(); } } public void restart() { synchronized (lock) { shouldStop = false; lock.notify(); } }</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengawal Benang dalam Java: Memulakan, Berhenti, dan Mulakan Semula?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!