Опасно ли для стандартных реализаций Property
в JavaFX вызывать методы набора из нескольких потоков? Мне не все равно, что на клиентской стороне условия гонки зависят от операций чтения и установки. Я хочу знать, может ли сам Property
быть поврежден внутренне, если несколько потоков вызывают его метод set()
или setValue()
.Являются ли объекты JavaFX Property потокобезопасными для множественной асинхронной записи?
Этот код ниже потокобезопасен?
public class ThreadSafeProperty {
public static void main(String[] args) {
ObjectProperty<Integer> property = new SimpleObjectProperty<>(5);
ExecutorService exec = Executors.newFixedThreadPool(5);
property.addListener((obs,o,n) -> System.out.println("OLD: " + o + " NEW: " + n));
exec.execute(() -> property.set(4));
exec.execute(() -> property.set(6));
exec.execute(() -> property.set(11));
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
exec.shutdown();
}
}