Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

คอนสตรัคเตอร์สามารถซิงโครไนซ์ใน Java ได้หรือไม่?


ไม่ คอนสตรัคเตอร์ ไม่สามารถซิงโครไนซ์ได้ ในชวา JVM ทำให้แน่ใจว่ามีเพียงเธรดเดียวเท่านั้นที่สามารถเรียกใช้การเรียกตัวสร้าง ณ เวลาที่กำหนด นั่นคือเหตุผลที่ไม่จำเป็นต้องประกาศตัวสร้างเป็น ซิงโครไนซ์และ มันคือ illegal ในชวา อย่างไรก็ตาม เราสามารถใช้บล็อกที่ซิงโครไนซ์ได้ ภายในตัวสร้าง

หากเรากำลังพยายามใส่ ซิงโครไนซ์ คำหลัก หน้าคอนสตรัคเตอร์ คอมไพเลอร์บอกว่า "ข้อผิดพลาด:ไม่อนุญาตให้ตัวแก้ไขซิงโครไนซ์ที่นี่ ".

ตัวอย่าง

public class SynchronizedConstructorTest {
      // declaration of synchronized constructor
      public synchronized SynchronizedConstructorTest() {
         System.out.println("Synchronized Constructor");
      }
      public static void main(String args[]) {
         SynchronizedConstructorTest test = new SynchronizedConstructorTest();
      }
}

ผลลัพธ์

SynchronizedConstructorTest.java:3: error: modifier synchronized not allowed here
public synchronized SynchronizedConstructorTest() {
^
1 error