Вопросы по теме 'synchronized'

Модель памяти Java: переупорядочивание и одновременные блокировки
Модель памяти Java требует, чтобы synchronize блоки, которые синхронизируются на одном и том же мониторе, применяли до-после-реализации для переменных, измененных в этих блоках. Пример: // in thread A synchronized( lock ) { x = true; } // in...
3754 просмотров
schedule 05.03.2023

Смешивание synchronized() с ReentrantLock.lock()
Используют ли в Java ReentrantLock.lock() и ReetrantLock.unlock() тот же механизм блокировки, что и synchronized() ? Моя догадка "Нет", но я надеюсь, что ошибаюсь. Пример: Представьте, что поток 1 и поток 2 имеют доступ к:...
5641 просмотров
schedule 12.12.2023

Разница между синхронизацией чтения полей и volatile
В хорошей статье с некоторыми советами по параллелизму пример был оптимизирован до следующих строк: double getBalance() { Account acct = verify(name, password); synchronized(acct) { return acct.balance; } } Если я правильно понимаю,...
1939 просмотров

Модификатор volatile Java и синхронизированные блоки
Нужен ли модификатор volatile для переменной, к которой обращаются несколько потоков, но только внутри синхронизированных блоков? Если нет, то почему?
5648 просмотров

Разница между синхронизированным блоком с ожиданием / уведомлением и без них?
Если я буду использовать только synchronized , а не _2 _ / _ 3_ методы, будет ли он по-прежнему ориентирован на многопоточность? Какая разница?
12613 просмотров

Синхронизация методов
Когда мы объявляем метод синхронизированным, то как второй поток узнает, что синхронизированный участок кода, используемый первым потоком, завершен, и как второй поток может использовать этот синхронизированный участок кода?
230 просмотров
schedule 25.08.2022

Странное поведение параллелизма на Java 6 Mac OS X Lion
Я экспериментировал с разницей между внутренними блокировками и java.util.concurrent.ReentrantLock в течение некоторого времени. Я нашел очень странную вещь. Рассмотрим следующий код: public class WriteOnceRunAnywhere { private static...
831 просмотров

Множественные блокировки объектов в Java?
Безопасно / приемлемо ли заблокировать переменную частного поля (вместо использования объекта блокировки)? Таким образом, у меня могут быть разные замки для разных целей. Пример ниже: class Test { private Integer x = 0; private Integer y =...
3424 просмотров

Синхронизировать файловый объект
Из того, что я знаю и исследовал, ключевое слово synchronized в Java позволяет синхронизировать оператор метода или блока кода для обработки многопоточного доступа. Если я хочу заблокировать файл для записи в многопоточной среде, я должен...
8274 просмотров
schedule 15.04.2022

Как синхронизировать карту между одним потоком r/w и одним потоком только для чтения?
У меня есть синхронизированная карта (через Collections.synchronizedMap() ), которая читается и обновляется потоком A. Поток B обращается к карте только через Map.keySet() (только для чтения). Как мне это синхронизировать? документы говорят ,...
2367 просмотров

Блокировать потоки в java - следует избегать?
В чем разница между заблокированными и ожидающими потоками с точки зрения потребляемых ресурсов (циклы процессора и др.). Что бы я предпочел вызвать notify(), чтобы разбудить один поток и оставить другие в состоянии ожидания, или вызвать notifyall(),...
140 просмотров
schedule 16.06.2023

Есть ли какая-либо функциональная разница между «синхронизированной функцией» и «синхронизированным блоком внутри функции»?
Есть ли разница между ними: public void synchronized func() { } а также public void func() { synchronized(this) { } } Я так понимаю в первом случае синхронизируется вся функция func а во втором случае синхронизируется только...
340 просмотров

Включает ли монитор Java переменные экземпляра?
Это тот монитор в Java, который не ограничивает доступ к переменным экземпляра, а только к методам, которые объявлены synchronized или коду в операторах synchronized ? Я создал два потока: thread y вызывает метод sync() , который объявлен...
10175 просмотров
schedule 18.07.2022

java, возвращающий клон массива, завернутый в collections.synchronizedlist
Мне интересно, как я могу создать клон моего массива в следующем сценарии: private List<TestObject> testList = Collections.synchronizedList(new ArrayList<TestObject>()); .... public synchronized List<TestObject>...
1117 просмотров
schedule 14.03.2023

Синхронизация и статическая синхронизация
Я пытаюсь понять основную разницу между синхронизированными и статическими синхронизированными методами. Например, рассмотрим класс Employee , который имеет пару экземпляров e1 , e2 . synchronized method1() { //--- blah blah--- }...
142 просмотров
schedule 20.09.2023

Выполнение нового потока внутри синхронизированного блока
Если я создам новый поток внутри синхронизированного блока, будет ли блок оставаться заблокированным до завершения выполнения потока? Если нет, то до каких пор он будет оставаться заблокированным? String sLine; onClick(String line){...
3214 просмотров
schedule 21.11.2023

Статический и нестатический объект блокировки в синхронизированном блоке
Попытка визуализировать и понять синхронизацию . В чем разница между использованием статического объекта блокировки (код A) и нестатического объекта блокировки (код B) для синхронизированного блока ? Чем он отличается в практических...
26995 просмотров

java многопоточность для синхронизации между задачами
У меня есть требование в многопоточной среде в java. Проблема такая; У меня есть 10 разных задач, и я хочу назначить все эти 10 задач 10 различным потокам. Теперь время окончания этих задач может быть другим. И есть некоторая финишная или...
117 просмотров
schedule 22.11.2023

Можно ли использовать изменчивые переменные, чтобы обеспечить согласованную синхронизацию только для записи?
Можно ли использовать изменчивые переменные, чтобы обеспечить согласованную синхронизацию только для записи? Это код: public class Controller { Container cont = new Container(); ... public Object get(){...
52 просмотров

Синхронизированный статический метод не работает в Android?
У меня есть один класс, который должен быть одноэлементным: private static StationsFile instance; private Context ctx; protected StationsFile(Context ctx){ this.ctx = ctx; load(); } public static synchronized StationsFile...
1199 просмотров
schedule 04.03.2022