Thread: Setiap tugas disebut utas. Utas tidak dapat ada secara mandiri, itu harus menjadi bagian dari proses.
Utas tunggal: Aplikasi Java umum adalah satu ulir. Misalnya, saat menjalankan program HelloWorld, proses JVM akan dimulai, dan kemudian metode utama akan dijalankan untuk menghasilkan utas. Metode utama juga disebut utas utama.
Multithreading: Program yang menjalankan lebih dari satu utas pada saat yang sama disebut program multithreaded. Multithreading dapat memenuhi tujuan pemrogram untuk menulis program yang efisien untuk mencapai tujuan memanfaatkan CPU secara penuh.
Contoh kode tunggal:
kelas publik singlethread {public static void main (string [] args) {thread thread = thread.currentThread (); // Dapatkan thread thread thread.setName yang sedang berjalan saat ini ("utas tunggal"); // ganti nama thread.out.println (thread.getName ()+"running"); untuk (int i = 0; i <10; i ++) {System.out.println ("Thread is Sleeping:"+i); coba {thread.sleep (1000); // Thread sedang tidur, ditunda oleh satu detik} catch (InterruptedException e) {// TODO Auto-Auto Catch Blocke.PrintStackTrace (); System.out.println ("Thread Error");}}}}Contoh kode multithreaded:
Catatan: Ada dua cara untuk mengimplementasikan multithreading, satu adalah untuk mewarisi kelas utas, dan yang lainnya adalah mengimplementasikan antarmuka yang dapat dijalankan.
Mewarisi kelas utas untuk mengimplementasikan multi-threading
kelas publik testThread {public static void main (string [] args) {thread t1 = ExtandThread baru ("t1", 1000); // Buat utas menggunakan objek up-turn, dan buat nama utas dan utas waktu tidur utas T2 = ExtandThread baru ("T2", 2000); Thread T3 = ExtandThread baru ("T3", 3000); t1.start (); // Mulai utas dan panggil metode run t2.start (); t3.start ();}} kelas ExtandThread memperluas thread {// class string class warisan name; int time; public extendThread (name string, int time) {// membangun nama utas dan waktu tidur this.name = name; this.time = time;} public void run () {// Tulis ulang metode run dari kelas utas coba {sleep (time); // semua utas menambahkan sleep} catch (interruptedExceptione) {e.printstacktrace (); System.out.println ("Thread Interrupt Exception");} System.out.println ("Namanya:"+Nama+", Thread Sleeps:"+Time+"msec"); }}Multithreading untuk mengimplementasikan antarmuka runnable
kelas publik runnableTread {public static void main (string [] args) {runnable r1 = new ImplRunnable ("r1", 1000); // antarmuka runnable harus bergantung pada kelas utas untuk membuat utas utas t1 = utas baru (r1); //Runnable cannot call the start() method, because it is not a thread, so you need to use the Thread class to add threads Runnable r2=new ImplRunnable("r2",2000);Thread t2=new Thread(r2);Runnable r3=new ImplRunnable("r3",3000);Thread t3=new Thread(r3);t1.start(); // Mulailah utas dan panggil metode run t2.start (); t3.start ();}} kelas implementasi implementasi runnable {// mewarisi nama string antarmuka yang dapat dijalankan; int time; public incrunnable (name string, time) {// Bangun nama utas dan waktu tidur ini.name = name; this. coba {thread.sleep (waktu); // Semua utas Tambahkan Sleep} catch (InterruptedException e) {e.printstacktrace (); System.out.println ("Thread Interrupt Exception");} System.out.println ("Nama adalah:"+Nama+", Thread Sleeps:"+Time+"MS");}}Catatan: Kelas utas sebenarnya adalah kelas yang mengimplementasikan antarmuka yang dapat dilalui.
Keuntungan Menerapkan Antarmuka Runnable dibandingkan Kelas Thread Mewarisi