Запитання з тегом «synchronized»

Блок або метод називають "синхронізованими", якщо вхід до них контролюється ключовим словом Java "синхронізовано". Це призводить до того, що доступ до нього одночасно обмежується одним потоком: при одночасному доступі вони секвентуються у невизначеному порядку.



22
Уникайте синхронізації (цього) на Java?
Кожного разу, коли виникає запитання щодо синхронізації Java, деякі люди дуже хочуть зазначити, чого synchronized(this)слід уникати. Натомість, вони стверджують, слід віддати перевагу замок на приватній довідці. Деякі з наведених причин: якийсь злий код може вкрасти ваш замок (дуже популярний цей, також є варіант "випадково") всі синхронізовані методи в межах одного …

4
Різниця між летючими та синхронізованими в Java
Мене цікавить різниця між оголошенням змінної як volatileі завжди доступом до змінної в synchronized(this)блоці на Java? Відповідно до цієї статті http://www.javamex.com/tutorials/synchronization_volatile.shtml можна сказати багато, і є багато відмінностей, а також деякі подібності. Мені особливо цікава ця інформація: ... доступ до мінливої ​​змінної ніколи не має можливості блокувати: ми лише завжди …

2
Що є причиною того, що в інтерфейсах Java 8 синхронізовано не дозволено?
У Java 8 я можу легко написати: interface Interface1 { default void method1() { synchronized (this) { // Something } } static void method2() { synchronized (Interface1.class) { // Something } } } Я отримаю повну семантику синхронізації, яку можу використовувати також у класах. Однак я не можу використовувати synchronizedмодифікатор …

11
Блокування синхронізованого методу Java на об'єкті чи методі?
Якщо у мене в одному класі є 2 синхронізованих методу, але кожен, хто має доступ до різних змінних, може 2 потоку отримати доступ до цих двох методів одночасно? Чи відбувається блокування на об'єкті, чи він стає таким же специфічним, як змінні всередині синхронізованого методу? Приклад: class X { private int …

12
Якщо я синхронізував два методи одного класу, чи можуть вони працювати одночасно?
Якщо я синхронізував два методи одного класу, чи можуть вони працювати одночасно на одному об’єкті ? наприклад: class A { public synchronized void methodA() { //method A } public synchronized void methodB() { // method B } } Я знаю, що я не можу methodA()двічі запускатись над одним об’єктом у …

8
Синхронізовані статичні методи Java: блокування об'єкта чи класу
Документація Java говорить: Неможливо переплутати два виклики синхронізованих методів на одному об’єкті. Що це означає для статичного методу? Оскільки статичний метод не має асоційованого об’єкта, чи заблокує синхронізоване ключове слово в класі замість об'єкта?


8
Синхронізація нефінального поля
Попередження відображається кожного разу, коли я синхронізуюсь із нефінальним полем класу. Ось код: 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 { } } } тому я змінив кодування таким …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.