Artikel ini menjelaskan teknologi threading Java secara lebih rinci dengan contoh. Saya yakin ini akan membantu untuk pemahaman mendalam tentang pemrograman Java. Dengan rincian sebagai berikut:
Banyak orang memiliki pemahaman tertentu tentang thread ketika mempelajari JAVA, dan ketika kami mulai menghubungi pengembangan Android, kami benar-benar menemukan betapa pentingnya thread. Artikel ini akan berbagi dengan Anda pengalaman menggunakan thread Java untuk referensi Anda.
Pertama-tama, setiap orang harus memahami bahwa thread dan proses bukanlah hal yang sama. Prosesnya sama seperti kita perlu mengeksekusi file kelas, dan thread inilah yang sebenarnya memanggil sumber daya CPU untuk dijalankan. File kelas umumnya hanya memiliki satu proses, tetapi bisa terdapat banyak thread. Eksekusi thread adalah metode eksekusi asynchronous.
1. Cara memulai thread lain di fungsi utama:
Contoh kodenya adalah sebagai berikut:
public class Thread_one { public static void main(String [] args){ Run run = new Run(); //run.run();//Ini adalah pemanggilan metode, yang sangat berbeda dengan thread Thread thread = new Thread (run); thread.start();//Mulai thread dan panggil metode run() thread for(int i=1; i<=20; i++){ System.out.println("Nilai main thread i: --------"+i); } }}class Run mengimplementasikan Runnable{ @Override public void run() { for(int i=1; i<=20; i++){ System.out .println("Nilai sub-thread i: "+i);
2. Metode tidur di thread
Contoh kodenya adalah sebagai berikut:
public class Thread_sleep { /* * Thread jeda*/ public static void main(String [] args){ Runone run = new Runone(); (5000); thread.interrupt();//Mengganggu eksekusi thread//thread.stop();//Dibandingkan dengan menginterupsi thread, stop terlalu kasar dan tidak disarankan thread anak harus ditutup paksa. } catch (InterruptedException e) { e.printStackTrace(); } }}class Runone mengimplementasikan Runnable{ @Override public void run() { for(int i=1; i<10; i++ ){ coba { Thread.sleep(1000 ); System.out.println("-----"+Tanggal baru()+"-----" } catch (InterruptedException e) { kembali ;// Jika thread anak ketahuan terputus, langsung tutup thread anak tersebut} } }}
Catatan khusus di sini adalah thread.interrupt(); dapat mengganggu eksekusi thread. Ini sedikit lebih lembut daripada berhenti, tetapi ini bukan cara terbaik untuk menutup thread.
kelas publik Thread_stop { public static void main(String [] args){ Jalankantiga jalankan = baru Jalankantiga(); Utas th = Utas baru(jalankan th.mulai(); coba { Utas.tidur(5000); InterruptedException e) { e.printStackTrace(); } run.setStop(); }}kelas Runthree mengimplementasikan Runnable{ boolean flag; @Override public void run() { flag = true; { System.out.println("utas anak----"+(i++)); Thread.sleep(1000); catch (InterruptedException e) { e.printStackTrace(); bendera = salah;
Izinkan saya memperkenalkan secara singkat kepada Anda tentang penggabungan dan pemberian dalam rangkaian pesan:
1. Cara menggabungkan thread , metode join() dipanggil di sini
Contoh kodenya adalah sebagai berikut:
public class Thread_join { /* * Gabungkan thread*/ public static void main(String [] args){ Runtwo run = new Runtwo(); ();//Gabungkan utas, ini setara dengan pemanggilan metode} catch (InterruptedException e) { e.printStackTrace(); for(int i=0; i<10; i++){ System.out.println("main Thread: "+i); } }}class Runtwo mengimplementasikan Runnable{ @Override public void run() { for(int i=0; i<10; i++){ System.out.println("Thread anak: --- -"+saya); } } }
2. Cara melepaskan thread . Metode yield() dari Thread dipanggil di sini, seperti yang ditunjukkan di bawah ini:
public class Thread_yield { /**Serahkan CPU * @param args */ public static void main(String[] args) { Th th = new Th("aaa"); for(int i = 0 ; i<=10; i++){ System.out.println("Utas utama----"+i); ;} @Override public void run() { for(int i = 0; i<=10; i++){ if(i%3!=0){ System.out.println("utas anak"+i } else{ System.out.println("Sub-thread i="+i+" thread switch");//Metode ini hanya dapat digunakan jika Anda mewarisi dari Thread} } }}
Terakhir, saya ingin berbagi dengan Anda masalah prioritas thread . Kodenya adalah sebagai berikut:
public class Thread_priority { /* * prioritas menetapkan prioritas thread * Prioritas default Thread adalah 5; prioritas maksimum Thread adalah 10 dan minimum adalah 0 */ public static void main(String [] args){ T1 t1 = T1 baru(); T2 t2 = T2 baru(); //t1.setPriority(Thread.NORM_PRIORITY+3); //Tetapkan prioritas t1 t2.start(); extends Thread { @Override public void run() { for(int i = 0; i<50; i++){ System.out.println("Thread T1-----"+i); Utas{ @Override public void run() { for(int i = 0; i<50; i++){ System.out.println("Utas T2"+i);
Saya yakin Anda pada dasarnya telah memahami mekanisme threading di JAVA melalui kode di atas. Saya harap penjelasan artikel ini dapat membantu Anda dalam mempelajari pemrograman Java secara mendalam.