Описание тега synchronized
Блок или метод называется "синхронизированным", если вход в него управляется ключевым словом Java "synchronized". Это приводит к тому, что доступ к нему ограничивается одним потоком за раз: когда происходят параллельные обращения, они упорядочиваются в неопределенном порядке.
1
ответ
Должен ли синхронизированный метод быть внешним по отношению к классу, который его использует?
Сценарий 1. Синхронизированный метод является частным и находится внутри класса, который реализует Runnable Main.java public class Main { Thread thread1 = new Thread(new MyRunnable); . . . } MyRunnable.java public class MyRunnable implements Runnabl…
09 авг '16 в 20:59
1
ответ
Безопасность потока iOS - завершите блок кода перед переключением потока
Я ищу способ убедиться, что некоторые строки кода всегда выполняются вместе (до того, как система может переключить поток). Насколько я знаю, @synchronized не работает для этого, так как он блокирует только другой поток для входа в этот определенный…
21 апр '13 в 13:26
1
ответ
Почему этот код имеет проблемы с производительностью даже без синхронизированного ключевого слова?
Почему следующий код имеет проблемы с производительностью, кадр с камеры не является плавным. public class VideoCaptureAndroid implements PreviewCallback, Callback{ private Integer deviceRotation = Integer.MAX_VALUE; public VideoCaptureAndroid(Conte…
11 июл '16 в 12:06
1
ответ
Разница между замками и синхронизированными методами
Я понимаю, что синхронизация допускает неявные блокировки, но разве они не дают одинаковых результатов? В чем разница между следующими двумя разделами кода? Почему программист решил использовать каждый? Блок кода № 1 class PiggyBank { private int ba…
13 май '15 в 20:34
3
ответа
Разрешение одного вызова метода за раз для метода категории ios (@synchronized)
У меня есть UIViewController и Категория для добавления методов в UIViewController. Есть метод в категории: @implementation UIViewController (AlertAnimationsAndModalViews) -(void)someAddedMethod { UIView *someView; //do some animation with the view …
23 май '13 в 08:04
1
ответ
Синхронизируйте пользовательский интерфейс и данные повторного просмотра в текущем фрагменте с пользовательским интерфейсом и данными повторного просмотра в соседнем фрагменте
Это "лайк" на Facebook. Я хотел бы синхронизировать эти повторные обзоры с этими двумя частями. Если вы нажмете кнопку "Мне нравится" в окне "Переработчик" одним куском, кнопка "Нравится" в окне "Переработчик" изменится, когда вы перейдете к другому…
14 сен '18 в 00:35
2
ответа
Могут ли клиенты GlusterFS синхронизировать подкаталоги
Этот вопрос может быть наивным, но я не смог быстро найти ответ в документации, так что это может быть правильное место, чтобы спросить. Могут ли клиенты GlusterFS синхронизировать только подкаталог? Например, Dropbox позволяет вам синхронизировать …
17 мар '14 в 16:19
3
ответа
Почему мои потоки выдают мне этот вывод при доступе к синхронизированному методу?
Я пытаюсь поэкспериментировать с многопоточностью и синхронизацией, поэтому я создал этот простой объект, который используется всеми потоками: public class SharedObject { private int count = 0; public synchronized int getCount(){ return count; } pub…
02 авг '18 в 20:58
4
ответа
Синхронизированное чтение свойства как несинхронизированное свойство
У меня есть неатомарное свойство Java, которое может быть установлено синхронизированным установщиком. У меня вопрос, могу ли я прочитать это свойство несинхронизированным геттером? Благодарю.
07 мар '15 в 13:57
1
ответ
Как реализовать многозадачные блокировки чтения / записи (ConcurrentHashmap)
У меня есть приложение, которое читает и пишет несколько файлов. Цель состоит в том, чтобы предотвратить чтение или запись определенного файла во время записи другим потоком. Я не хочу блокировать чтение и запись всех файлов во время записи одного ф…
04 июл '18 в 15:44
1
ответ
Запрашиваемая о многопоточности, массивах и кеш-памяти
Я надеюсь в хорошем смысле:-) Я написал этот кусок кода. Что я хотел сделать, так это создать что-то вроде "кеша". Я предполагал, что мне нужно следить за различными потоками, поскольку многие вызовы могут попасть в этот класс, поэтому я попробовал …
26 ноя '10 в 09:43
3
ответа
Синхронизированный (vector<vector>) блокирует все Векторы или только тот, который их хранит?
Скажем, у меня есть несколько векторов: v1, v2, v3 Скажем, у меня также есть вектор, который содержит эти vList = {v1, v2, v3} Если я синхронизировался (vList), означает ли это, что v1, v2 и v3 также заблокированы или это просто блокировка vList?
22 окт '14 в 19:24
3
ответа
Каков простой способ получения ACID-транзакций с постоянством в локальной файловой системе (в Java)?
Я работаю над небольшим (java) проектом, где веб-сайт должен поддерживать (желательно разделенный запятыми) список зарегистрированных адресов электронной почты, ничего больше, и иметь возможность проверить, есть ли адрес в списке. У меня нет контрол…
17 мар '10 в 10:31
1
ответ
Увеличить значение в Hashmap потокобезопасным способом, сохраняя высокую производительность без синхронизации?
У меня есть модель, которая имеет разные переменные. public class Model implements Serializable{ public final static int STATE_INIT = 0; public final static int STATE_READY = 1; private Integer state = STATE_INIT; private HashMap<Integer,Integer&…
17 июн '17 в 09:15
4
ответа
Увеличивая статическую переменную через 100 различных потоков без синхронизации, но получая конечный результат как 100
Я увеличиваю статическую переменную через 100 различных потоков без синхронизации, но получаю конечный результат как 100. Я выполнил этот код несколько раз и получил тот же результат. Разве мой код не требует синхронизации? Я использую BlueJ IDE для…
04 июл '14 в 01:51
0
ответов
Сервер зависает, когда Spring транзакционно использует синхронизированный (Object.class)
Я использую Spring с jdbc, сервер зависает, когда я использую @transactional и синхронизирован (Object.class). Код упрощен следующим образом: package com.zjipst.immigration.review.service.impl; @Service public class ReviewsImpl implements Reviews { …
16 ноя '17 в 03:24
2
ответа
В Java, имеет ли значение возвращать значение в синхронизированном блоке?
Код как ниже public class UAUtil { private static String sUA = null; private static Object sLock = new Object(); public static void clear() { synchronized (sLock) { sUA = null; } } public static String getUserAgent() { synchronized (sLock) { if (sUA…
06 мар '17 в 02:33
1
ответ
Видимость данных в многопоточном сценарии
Еще один сценарий, основанный на предыдущем вопросе. На мой взгляд, его заключение будет достаточно общим, чтобы быть полезным для широкой аудитории. Цитирую Питера Лоури отсюда: Синхронизированный использует барьер памяти, который гарантирует, что …
03 июл '12 в 01:23
1
ответ
Программа, использующая waitFor(), не работает на Linux, как на Windows
Привет всем, кто не знает, почему этот код работает на Windows, но не на Linux, поэтому, если кто-то видит что-то не так с этим или другим способом сделать это, я был бы очень признателен за некоторые советы, спасибо за ваше время. Process p = Runti…
22 июн '12 в 01:55
3
ответа
Защита синхронизации не работает для двойных потоков
Ниже мой урезанный код Java для обзора. У меня есть несколько подклассов, и когда вызывается execParallel (), запускается новый поток. Этот поток и поток по умолчанию должны несколько раз выполнить ualCritFunction() через actionFunction(), но эта фу…
21 май '13 в 21:34