2012-11-30 2 views
1

JavaFX에서 느린 초기화 속성이 자주 나타나는 디자인 패턴입니다.JavaFX에서 속성의 지연 초기화.

public final StringProperty textProperty() { 
    if (text == null) { 
     text = new SimpleStringProperty(this, "text", ""); 
    } 
    return text; 
} 

이 벌레처럼 보인다 속성이 이대로 자바 FX UI 스레드뿐만 아니라 다른 잠재 고객 스레드,이 구현 is not thread safe에서 액세스 점을 감안 예를 들어, OpenJFX Labeled implementation는 다음 코드가 포함되어 있습니다. 패턴이 얼마나 자주 사용되는지를 감안할 때 이것은 매우 심각한 문제이거나 컨트롤의 속성에 액세스하는 것이 스레드 안전을위한 것이 아니기 때문에 JavaFX 동시성 전략을 오해하고 있습니다.

게으른 초기화가 스레드로부터 안전하지 않다는 이유를 누구나 설명 할 수 있습니까?

답변

5

JavaFX는 스레드로부터 안전하지 않으며 스레드는 Swing처럼 제한됩니다. 사실, JavaFX API의 많은 메소드는 JavaFX 스레드에서 사용하지 않으면 예외를 발생시킵니다.

+0

감사합니다. 이제 더 많이 파고 들었으므로 [RTFM] (http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm) ... 하하. – elecengin

관련 문제