Antara muka Runnable hanya mempunyai satu kaedah, run(). Kami mengisytiharkan bahawa kelas kami melaksanakan antara muka Runnable dan menyediakan kaedah ini dan menulis kod thread kami ke dalamnya untuk menyelesaikan bahagian tugas ini.
Tetapi antara muka Runnable tidak mempunyai sebarang sokongan untuk utas Kami juga mesti mencipta contoh kelas Thread, yang dicapai melalui Thread awam pembina(Sasaran boleh dijalankan); Berikut ialah contoh:
public class MyThread implements Runnable { int count= 1, number; public MyThread(int num) { numnumber = num; System.out.println("创建线程 " + number); } public void run() { while(true) { System.out.println ("线程 " + number + ":计数 " + count); if(++count== 6) return; } } public static void main(String args[]) { for(int i = 0; i 〈 5; i++) new Thread(new MyThread(i+1)).start(); } }
Tegasnya, ia juga boleh dilakukan untuk mencipta contoh subkelas Thread, tetapi perlu diperhatikan bahawa subkelas tidak boleh mengatasi kaedah run kelas Thread, jika tidak, thread akan melaksanakan Ia adalah kaedah larian subkelas, bukan kaedah larian kelas yang kami gunakan untuk melaksanakan antara muka Runnable Anda juga boleh mencubanya.
Menggunakan antara muka Java Runnable untuk melaksanakan multi-threading membolehkan kami mengandungi semua kod dalam satu kelas, yang sesuai untuk enkapsulasi ialah kami hanya boleh menggunakan satu set kod berbilang utas dan Untuk membuat setiap utas melaksanakan kod yang berbeza, anda masih perlu mencipta kelas tambahan Jika ini berlaku, dalam kebanyakan kes ia mungkin tidak padat seperti mewarisi Benang secara langsung daripada berbilang kelas.
Atas ialah kandungan terperinci Bagaimana untuk menulis kelas yang melaksanakan antara muka Runnable di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!