Wpis z mikrobloga

#programowanie #javafx #java
Czy sortowanie (FXCollections.sort()) synchronizowanej ObservableList jest atomowe? Inaczej czy w trakcie sortowania mogę spokojnie wykonywać na liście (dodawanie/usuwanie) operacje z innego wątku i nie będę miał w pewnym momencie listy która jest "w trakcie" sortowania?
  • 3
@psi-nos: Nie chodzi Ci o "atomowosc" tylko o "thread safe". Atomowosc oznacza że operacja jest niepodzielna.

Wracajac do pytania: to zależy czy używasz tej listy w jakikolwiek sposób w grafie sceny, jeśli tak to modyfikacji możesz dokonać tylko z poziomu wątku GUI. Jeśli jesteś w innym wątku to możesz to zeschedulowac przez 'Platform.runLater()'
@psi-nos: myślę że w przypadku synchronizowanej listy i sortowania można właśnie mówić o atomowej operacji, tak jak w przypadku zmiennych typu Atomic np. AtomicInteger. Fakt synchronizacji daje mi "thread safety" w przypadku dodawania/usuwania, a w przypadku sortowania tylko wtedy jeżeli jak to napisałem byłoby "atomowe". Ale nie wiem, kwestia terminologii może. Piszesz że atomowość oznacza niepodzielność, a w przypadku np. AtomicInteger odczytanie i zwiększenie zmiennej jest podzielne, ale można je wykonać