Mam pytania dotyczące użycia i znaczenia synchronizedsłowa kluczowego. Jakie jest znaczenie synchronizedsłowa kluczowego? Kiedy powinny być metody synchronized? Co to znaczy programowo i
Mówi się, że blok lub metoda jest „zsynchronizowana”, jeśli wejście do niego jest kontrolowane przez słowo kluczowe Java „synchronized”. Powoduje to, że dostęp do niego jest ograniczony do pojedynczego wątku naraz: gdy występują współbieżne dostępu, są one sekwencjonowane w nieokreślonej kolejności.
Mam pytania dotyczące użycia i znaczenia synchronizedsłowa kluczowego. Jakie jest znaczenie synchronizedsłowa kluczowego? Kiedy powinny być metody synchronized? Co to znaczy programowo i
Czy ktoś może mi powiedzieć przewagę metody zsynchronizowanej nad zsynchronizowanym blokiem z
Za każdym razem, gdy pojawia się pytanie na temat SO dotyczące synchronizacji Java, niektórzy bardzo chętnie wskazują, że synchronized(this)należy tego unikać. Zamiast tego twierdzą, że preferowana jest blokada prywatnego odwołania. Niektóre z podanych powodów to: jakiś zły kod może ukraść twoją...
Zastanawiam się nad różnicą między deklarowaniem zmiennej jako volatilei zawsze uzyskiwaniem dostępu do zmiennej w synchronized(this)bloku w Javie? Zgodnie z tym artykułem http://www.javamex.com/tutorials/synchronization_volatile.shtml jest wiele do powiedzenia i istnieje wiele różnic, ale także...
W Javie 8 mogę łatwo napisać: interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } Otrzymam pełną semantykę synchronizacji, której mogę używać także na zajęciach. Nie mogę...
Jeśli mam 2 zsynchronizowane metody w tej samej klasie, ale każda ma dostęp do różnych zmiennych, czy 2 wątki mogą uzyskać dostęp do tych 2 metod jednocześnie? Czy blokada występuje na obiekcie, czy staje się tak specyficzna jak zmienne w zsynchronizowanej metodzie? Przykład: class X { private...
Jeśli zsynchronizowałem dwie metody w tej samej klasie, czy mogą one działać jednocześnie na tym samym obiekcie ? na przykład: class A { public synchronized void methodA() { //method A } public synchronized void methodB() { // method B } } Wiem, że nie mogę uruchomić methodA()dwa razy...
Dokumentacja Java mówi: Nie ma możliwości przeplotu dwóch wywołań metod zsynchronizowanych na tym samym obiekcie. Co to oznacza dla metody statycznej? Ponieważ metoda statyczna nie ma skojarzonego obiektu, czy synchronizowane słowo kluczowe będzie blokować klasę zamiast...
Co oznacza ten kod java? Czy zablokuje się na wszystkich przedmiotach MyClass? synchronized(MyClass.class) { //is all objects of MyClass are thread-safe now ?? } A czym różni się powyższy kod od tego: synchronized(this) { //is all objects of MyClass are thread-safe now ?? }...
Ostrzeżenie jest wyświetlane za każdym razem, gdy przeprowadzam synchronizację w nieostatecznym polu klasy. Oto kod: public class X { private Object o; public void setO(Object o) { this.o = o; } public void x() { synchronized (o) // synchronization on a non-final field {...