Pytania otagowane jako synchronized

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.



22
Unikać synchronizacji (tej) w Javie?
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ą blokadę (bardzo popularny ten, ma również wariant „przypadkowo”) wszystkie …

4
Różnica między zmienną i zsynchronizowaną w Javie
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 pewne podobieństwa. Szczególnie interesuje mnie ta informacja: ... dostęp do zmiennej ulotnej nigdy nie ma możliwości zablokowania: …

2
Jaki jest powód, dla którego „synchronizacja” jest niedozwolona w metodach interfejsu Java 8?
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ę jednak użyć synchronizedmodyfikatora do deklaracji metod: …





8
Synchronizacja pola innego niż końcowe
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 { } } } więc zmieniłem kodowanie …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.