Вопросы по теме 'happens-before'
Установление Happens-Before в массивах
Есть быстрый вопрос синхронизации, вот что у меня есть:
а) Class1 имеет параллельную хеш-карту, определенную следующим образом:
ConcurrentMap<String, int[][]> map = new ConcurrentHashMap<String, int[][]>();
б) Class2 имеет...
131 просмотров
schedule
19.08.2022
Java происходит до и синхронизация
У меня небольшие разногласия по поводу происходит до в Java и синхронизации.
Представьте себе следующий сценарий:
Основная тема
MyObject o = new MyObject(); // (0)
synchronized (sharedMonitor) {
// (1) add the object to a shared...
2146 просмотров
schedule
20.07.2022
Задается ли отношение «происходит до» в случае invokeLater() или invokeAndWait?
Почти уверен, что так оно и есть, но мне хотелось бы знать наверняка, происходит ли отношение перед тем, как оно задано в случае invokeLater() или invokeAndWait()?
Методы определены в (SwingUtilities соответственно) AWT.EventQueue. Я предполагаю,...
324 просмотров
schedule
17.03.2023
Не по порядку пишет без барьера памяти: единственная возможная причина гонки данных?
При изучении Java Concurrency by Brian Goetz на практике я наткнулся на следующую строку:
Гонка данных происходит, когда переменная читается более чем одним потоком и записывается как минимум одним потоком, но операции чтения и записи не...
316 просмотров
schedule
07.07.2022
Происходит раньше для прямого ByteBuffer
У меня есть прямой ByteBuffer (вне кучи) в одном потоке, и я безопасно публикую его в другом потоке, используя один из механизмов, предоставленных мне JMM. Распространяется ли отношение «происходит до» на собственную (вне кучи) память, обернутую...
372 просмотров
schedule
13.11.2022
Почему «приобретение/выпуск» не может гарантировать последовательную согласованность в С++ 11?
-Thread 1-
y.store (20, memory_order_release);
x.store (10, memory_order_release);
-Thread 2-
if (x.load(memory_order_acquire) == 10) {
assert (y.load(memory_order_acquire) == 20);
y.store (10, memory_order_release)
}
-Thread...
711 просмотров
schedule
02.06.2022
Одноэлементная блокировка двойной проверки Java должна использовать ключевое слово volatile?
привет, у меня проблема с двойной проверкой блокировки в одноэлементном шаблоне。 в следующем коде:
private volatile static DoubleCheckSingleton instance;
private DoubleCheckSingleton() {}
public static DoubleCheckSingleton getInstance(){...
67 просмотров
schedule
04.01.2023
Сопрограммы Kotlin бывают раньше гарантий?
Предоставляют ли сопрограммы Kotlin какие-либо гарантии «случится до»?
Например, существует ли гарантия «происходит до» между записью в mutableVar и последующим чтением в (потенциально) другом потоке в этом случае:
suspend fun doSomething()...
601 просмотров
schedule
16.04.2023
Java происходит до отношений?
Рассмотрим следующий код.
public class Test {
private boolean running = false;
public void run() {
running = true;
}
public void test() {
boolean running1 = running;
boolean running2 = running;...
65 просмотров
schedule
20.02.2023
Неустойчивое переупорядочивание Java
Во-первых, позвольте мне сказать, что я знаю, что это довольно распространенная тема здесь, но, ища ее, я не смог найти другой вопрос, который проясняет следующую ситуацию. Мне очень жаль, если это возможный дубликат, но вот:
Я новичок в...
58 просмотров
schedule
12.10.2022
HashMap против ConcurrentHashMap: передача между потоками
У меня вопрос по использованию карт в многопоточном приложении. Предположим, у нас есть такой сценарий:
Поток получает данные json как List<Map<String, Object>> , которые десериализуются Джексоном Джсоном.
Этот поток изменяет...
209 просмотров
schedule
07.02.2024
Будет ли JVM обновлять значение поля для всех потоков с использованием Happens-Before без прямого присвоения значения полю?
Я уже знаю, что если я пишу в энергонезависимое поле из другого потока, он, вероятно, сможет его кэшировать, поэтому все остальные потоки не увидят фактического значения. Но если я вызову, например, start() для объекта потока ПОСЛЕ присвоения...
46 просмотров
schedule
05.05.2024
ConcurrentHashMap только для чтения/обновления с помощью метода вычисления
По сути, это продолжение этого или это или многие другие в этом отношении.
Мой вопрос, вероятно, прост: если я использую ConcurrentHashMap::compute только , как для чтения, так и для записи, достаточно ли этого для обеспечения видимости ?...
113 просмотров
schedule
19.08.2022