Pertama, lihatlah status berjalan dari setiap tahap utas java berjalan
Utas adalah entitas dalam suatu proses dan merupakan unit dasar yang dijadwalkan secara independen dan dikirim oleh sistem. Proses dengan utas lain yang termasuk dalam proses yang sama. Satu utas dapat membuat dan membatalkan utas lain, dan beberapa utas dalam proses yang sama dapat dieksekusi secara bersamaan. Karena kendala timbal balik antara utas, utas tampak terputus -putus selama operasi.
Dalam sistem operasi yang memperkenalkan utas, proses biasanya digunakan sebagai unit dasar untuk mengalokasikan sumber daya, dan utas digunakan sebagai unit dasar untuk operasi independen dan penjadwalan independen. Karena utas lebih kecil dari proses dan pada dasarnya tidak memiliki sumber daya sistem, overhead penjadwalan akan jauh lebih kecil, yang dapat secara lebih efisien meningkatkan tingkat eksekusi bersamaan antara beberapa program dalam sistem, sehingga secara signifikan meningkatkan pemanfaatan sumber daya sistem dan throughput.
Thread adalah proses kontrol berurutan tunggal dalam suatu program. Menjalankan beberapa utas secara bersamaan dalam satu program untuk menyelesaikan pekerjaan yang berbeda, yang disebut Multithreading.
Multithreading terutama digunakan untuk menghemat waktu CPU dan menggunakannya.
Multithreading adalah untuk menyelesaikan beberapa tugas secara bersamaan, bukan untuk meningkatkan efisiensi operasional, tetapi untuk meningkatkan efisiensi penggunaan sumber daya untuk meningkatkan efisiensi sistem. Utas diimplementasikan ketika beberapa tugas perlu diselesaikan pada saat yang sama.
Ada dua cara untuk mengimplementasikan multi-threading di Java
1. Mewariskan kelas utas
2. Menerapkan antarmuka runnable
Apa poin umum dari kedua metode ini:
Tidak peduli metode mana yang digunakan, Anda harus menggunakan utas (jika itu adalah subkelas utas, menggunakannya sendiri) untuk menghasilkan utas, dan kemudian memanggil metode start ().
Perbedaan antara kedua metode:
1. Salah satu kelemahan dari warisan kelas utas adalah warisan tunggal, sambil menerapkan antarmuka runnable menebus kekurangannya, dan warisan berganda dapat dicapai.
2. Jika Anda mewarisi kelas utas, jika Anda menghasilkan objek instan yang dapat dijalankan, Anda harus menghasilkan beberapa objek instan yang dapat dijalankan, dan kemudian menggunakan utas untuk menghasilkan banyak utas; Kelas ini dan kemudian gunakan contoh ini. Yaitu, berbagi sumber daya direalisasikan
Berdasarkan dua poin di atas, disarankan untuk menggunakan metode kedua
Berikut ini adalah contoh untuk diilustrasikan
Program 1:
Paket com.dr.runnable1; // Kelas mewarisi kelas utas, maka kelas ini adalah kelas multi-thread. /Jika menggunakan multithreading, Anda harus memiliki tubuh dari metode public void run () {// printout untuk (int i = 0; i <10; i ++) {System.out.println (this.name+"--- --- -> run ,,,, ");}}} kelas publik demo1 {public static void main (string args []) {// metode pertama runnable r1 = mythread baru (" thread a "); runnable r2 = mythread baru baru "Thread B"); ); Metode // mythread mt1 = mythread baru ("thread a"); // mythread mt2 = mythread baru ("thread b"); // mythread mt3 = mythread baru ("thread c"); // mt1.start () ; // mt1.start (); // Thread hanya dapat dimulai sekali // mt2.start (); // mt3.start ();Hasil berjalan dari program ini adalah:
Ini mewarisi kelas utas, metode pertama menghasilkan beberapa objek instance runnable, dan kemudian menggunakan utas untuk menghasilkan beberapa utas
Metode kedua adalah bahwa karena kelas ini telah mewarisi kelas utas, ia dapat secara langsung menggunakannya untuk menghasilkan banyak utas.
Program 2:
Paket com.dr.runnable1; kelas myThread1 mengimplementasikan runnable {private int ticket = 10; out .println ("Tiket ----->"+(this.ticket--)); ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::: (MT);Hasil menjalankan program:
Program ini mengimplementasikan runnable, menghasilkan kelas objek instan, dan kemudian menggunakan utas untuk menghasilkan banyak utas.