Pelaksanaan utas menjadi pelaksanaan satu utas untuk setiap contoh jika kaedah contoh itu disegerakkan tetapi apabila terdapat lebih daripada sekali contoh kelas yang sama, ia menjadi masalah yang memerlukan penyegerakan pada peringkat kelas untuk menyediakan hanya satu kunci untuk semua contoh kelas daripada mempunyai penyegerakan pada peringkat objek dan ini dipanggil penyegerakan statik dalam Java yang boleh dilakukan dalam dua cara, satu adalah dengan mempunyai kaedah disegerakkan statik dan satu lagi mempunyai blok disegerakkan kod dalam kaedah statik.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Sintaks adalah seperti berikut:
synchronized static return_type class_name{}
di mana jenis pulangan ialah jenis nilai yang dikembalikan daripada kelas dan nama_kelas ialah nama kelas.
Setiap contoh kelas mempunyai kunci pada objek kelas di Jawa. Jika mana-mana kaedah statik dibuat disegerakkan, maka kunci itu bukan pada objek kelas, tetapi ia berada pada kelas itu sendiri. Katakan, terdapat dua objek kelas yang dipanggil obj1 dan obj2 dan benang t1 dan t2 beroperasi pada objek obj1. Begitu juga, benang t3 dan t4 beroperasi pada objek obj2. Jika blok kod atau kaedah dibuat disegerakkan, tiada gangguan boleh berlaku antara benang t1 dan t2 kerana kedua-dua benang t1 dan t2 merujuk kepada objek obj1 yang sama yang mempunyai kunci tunggal. Begitu juga, tiada gangguan boleh berlaku antara benang t3 dan t4 kerana kedua-dua benang t3 dan t4 merujuk kepada objek yang sama obj2 yang mempunyai kunci tunggal.
Tetapi gangguan boleh berlaku antara benang t1 dan t3 kerana kedua-dua benang t1 dan t3 telah memperoleh objek berbeza dengan kunci berbeza. Begitu juga, gangguan boleh berlaku di antara benang t2 dan t4 kerana kedua-dua benang t2 dan t4 telah memperoleh objek yang berbeza dengan kunci yang berbeza. Kami tidak mahu mempunyai sebarang gangguan antara mana-mana benang dan masalah ini boleh diselesaikan dengan menggunakan Penyegerakan Statik di Jawa. Objek kelas dicipta oleh Mesin Maya Java apabila pemuatan kelas berlaku buat kali pertama. Kelas yang sama tidak akan dimuatkan lagi selepas pemuatan kelas berlaku buat kali pertama. Contoh kelas dicipta untuk setiap kelas yang dimuatkan, oleh Mesin Maya Java. Kejadian kelas ini dipanggil objek dan penyegerakan objek boleh dilakukan menggunakan Penyegerakan Statik dalam Java.
Di bawah ialah contoh:
Program untuk menunjukkan Penyegerakan Statik dalam Java:
Kod:
//a class called check is defined class check { // a method called Line is define and only one thread will be able to access this method at once because it is synchronized synchronized public void Line() { //a for loop is defined to loop from values 0 to 3 for (int r = 1; r <5; r++) { System.out.println(r); try { Thread.sleep(390); } catch (Exception ex) { System.out.println(ex); } } } } //a class called Trap is defend which extends a thread of the class class Trap extends Thread { //a variable of the class check is defined check line1; //a constructor of the class trap is defined with check class variable Trap(check line1) { this.line1 = line1; } //the standard run method is overridden public void run() { line1.Line(); } } //a class called program is defined public class program { //main method is called public static void main(String[] args) { //an instance of the class check is defined check object = new check(); // two threads of the class trap is created and they share the same object Trap tra1 = new Trap(object); Trap tra2 = new Trap(object); //Beginning the execution of two threads tra1.start(); tra2.start(); } }
Output:
Penjelasan: Dalam program di atas, kelas yang dipanggil semak ditentukan. Kemudian kaedah yang dipanggil Line ditakrifkan dan hanya satu thread akan dapat mengakses kaedah ini sekaligus kerana ia disegerakkan. Kemudian gelung for ditakrifkan kepada gelung daripada nilai 0 hingga 3. Kemudian kelas yang dipanggil Trap ialah defend yang memanjangkan satu utas kelas. Kemudian pembolehubah semakan kelas ditakrifkan. pembina perangkap kelas ditakrifkan dengan pembolehubah kelas semak sebagai parameter. Kemudian kaedah larian standard ditindih. Kemudian kelas yang dipanggil program ditakrifkan. Kemudian kaedah utama dipanggil. Kemudian contoh semakan kelas ditakrifkan. Kemudian dua utas perangkap kelas, tra1 dan tra2 dicipta dan mereka berkongsi objek yang sama. Kemudian pelaksanaan dua utas tra1 dan tra2 bermula dengan cara yang pelaksanaan satu utas tidak mengganggu pelaksanaan utas lain atau pelaksanaan satu utas tidak mengunci pelaksanaan utas lain. Output program adalah seperti yang ditunjukkan dalam syot kilat di atas.
Terdapat beberapa kelebihan. Mereka ialah:
Dalam tutorial ini, kami memahami konsep Penyegerakan Statik dalam Java melalui definisi, sintaks untuk mengisytiharkan penyegerakan statik dalam Java, kerja Penyegerakan Statik dalam java melalui contoh dan outputnya serta kelebihan penyegerakan statik dalam java.
Atas ialah kandungan terperinci Penyegerakan Statik dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!