Dua cara untuk menyesuaikan utas
Kustomisasi kelas implementasi antarmuka yang dapat dijalankan, dan kemudian buat utas, yaitu, lulus kelas antarmuka yang dapat dijalankan ke utas.
utas baru atau tulis subkelas utas untuk mengesampingkan metode yang dijalankan. (BARU A BARU DAN MENGUNDANG METODE JALAN sebenarnya adalah cara untuk kelas dalam anonim)
Kode sampel
public static void main (string [] args) {thread baru (new runnable () {@Overridepublic void run () {System.out.println ("Buat utas dengan melewati target runnable!");}}). start (); new thread () {@overlridepublic void void () {) {overideplic void () {) {overideplic void {) {) {overLIVET () {overideplic void () {) {) {overLIDETNET. !");};}.awal();}Metode yang disebutkan di atas untuk membangun utas 1 dan 2 dirancang dengan objek kelas anonim karena metode penulisan kode. Instruksi tambahan berikut ini dibuat:
1. Untuk paragraf pertama, saya langsung lulus dalam contoh anonim yang dapat dijalankan. Anda dapat menyesuaikan instance runnable dan kemudian mendapatkan utas dalam bentuk utas baru (runnable);
2. Untuk paragraf kedua, Anda dapat secara khusus mendefinisikan kelas untuk memperluas kelas dasar utas, dan kemudian baru kelas utas baru ini.
3. Untuk dua segmen ini, buat objek kelas anonim secara langsung dengan utas baru. Anda dapat mendefinisikan variabel thread1 dan thread2, dan kemudian menggunakan thread1.start () thread2.start () untuk memulai utas;
Analisis Kode Sumber
Apa perbedaan antara kedua metode ini? Efek terakhir dari keduanya adalah sama. Dari level kode sumber, metode run default utas (jika tidak ditimpa) adalah metode run yang memanggil target (target tidak kosong). Target adalah kelas antarmuka runnable yang kami lewati.
public yang disinkronkan void start () {if (threadStatus! = 0) melempar IllegalThreadStateException baru (); group.add (this); boolean start = false; coba {start0 (); start = true;} akhirnya {coba {if (start) {group.threadStartFailed (this);Awal utas pada akhirnya akan memanggil Native Start0, yang akan menyebabkan mesin virtual JVM memanggil metode run thread.
public void run () {if (target! = null) {target.run ();}}Di sini targetnya adalah objek yang dapat dijalankan di utas
target runnable pribadi;
Meringkaskan
Metode run writing thread adalah metode run yang dieksekusi oleh utas saat memulai.
Saat melewati Runnable, utas menjalankan metode run default saat memulai. Metode jalankan akan memanggil target yang diteruskan dan memanggil metode menjalankan target.
Efek keduanya sama, di sini hanya untuk membantu kita melihat perbedaan dalam detail kode.
Di atas adalah analisis komprehensif dari metode start and run di java thread yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda ingin tahu lebih banyak, harap perhatikan wulin.com!