Artikel ini berbagi dengan Anda metode spesifik untuk mengimplementasikan metode runnable java multi-threading untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
(I) Langkah
1. Menentukan dan menerapkan antarmuka runnable
2. Timpa metode run di antarmuka runnable dan simpan kode yang ingin dijalankan oleh utas dalam metode run.
3. Buat objek utas melalui kelas utas.
4. Lewati objek subkelas dari antarmuka runnable sebagai parameter aktual untuk konstruktor kelas utas.
Mengapa kita berbicara tentang konstruktor objek subkelas antarmuka yang dapat dilalui yang diteruskan ke utas? Karena objek yang dimiliki metode khusus adalah objek subkelas dari antarmuka yang dapat dijalankan.
5. Panggil metode mulai dari kelas utas untuk memulai utas dan panggil metode Runnable Interface Subclass Run.
(Ii) masalah blok kode bersama yang aman
Tujuan: Apakah ada masalah keamanan dengan program ini? Jika demikian, bagaimana cara menyelesaikannya?
Bagaimana menemukan pertanyaannya:
1. Identifikasi kode mana yang merupakan kode berjalan multi-thread.
2. Jelas berbagi data
3. Klarifikasi pernyataan mana dalam kode multi-threaded beroperasi untuk berbagi data.
Class Bank {private int sum; public void add (int n) {sum+= n; System.out.println ("sum ="+sum); }} kelas cus mengimplementasikan runnable {private bank b = new bank (); public void run () {disinkronkan (b) {for (int x = 0; x <3; x ++) {b.add (100); }}}} kelas publik BankDemo {public static void main (string [] args) {cus c = new cus (); Utas T1 = utas baru (c); Utas T2 = utas baru (c); t1.start (); t2.start (); }} Atau dengan cara kedua, letakkan kode sinkronisasi yang disinkronkan dalam metode modifikasi.
Class Bank {private int sum; public disinkronkan void add (int n) {objek obj = objek baru (); jumlah+= n; coba {thread.sleep (10); } catch (Exception e) {E.PrintStackTrace (); } System.out.println ("sum ="+sum); }} kelas cus mengimplementasikan runnable {private bank b = new bank (); public void run () {for (int x = 0; x <3; x ++) {b.add (100); }}} kelas publik BankDemo {public static void main (string [] args) {cus c = new cus (); Utas T1 = utas baru (c); Utas T2 = utas baru (c); t1.start (); t2.start (); }} Meringkaskan:
1. Tentukan masalah dan metode untuk ditangani di kelas.
2. Tulis ulang metode run di kelas yang mengimplementasikan Runnable untuk memanggil metode untuk menangani masalah di kelas yang sudah ditentukan.
Terima objek kelas untuk menangani masalah di blok yang disinkronkan.
3. Tentukan beberapa utas untuk dieksekusi dalam metode utama.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.