Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 생성자를 동기화할 수 있습니까?


아니요 , 생성자는 동기화할 수 없습니다. 자바에서. JVM은 주어진 시점에 하나의 스레드만 생성자 호출을 호출할 수 있도록 합니다. 그렇기 때문에 생성자를 동기화 및 로 선언할 필요가 없습니다. 불법입니다나는 자바에서. 그러나 동기화된 블록을 사용할 수 있습니다. 생성자 내부.

동기화된 키워드 생성자 앞에 컴파일러는 "오류:수정자 동기화가 여기에서 허용되지 않음 ".

예시

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