powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Пример безопасной, небезопасной и публикации через гонку.
2 сообщений из 27, страница 2 из 2
Пример безопасной, небезопасной и публикации через гонку.
    #39398817
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
no56892questioner,
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
class C {
    public static int var1;
    public static int var2;
}

class B { 
    public B() {
         C.var2 = 10;
    }
}

class A {
    final B bRef = new B();
}

в потоке 1:
С.var1 = 10;
sharedRef = new A(); //dirty write

в потоке 2:
if(sharedRef != null) { //dirty read
    C.var2 == 10 // true
    C.var1 == 10 // нет гарантий, а если вместо final сделать volatile то true гарантированно
    // условно final в конструкторе дает видимость
 //ТОЛЬКО над теми изменениями, сделанными через это 
//final поле (через ссылку) - явно или неявно, а с volatile -
 //вообще над всеми (естественно, которые были до записи в volatile поле).
}



а что такое sharedRef?
можно весь код? у вас тут и var1 и var2 без final/volatile
...
Рейтинг: 0 / 0
Пример безопасной, небезопасной и публикации через гонку.
    #39399173
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerХочу таки чётко разобраться....

Было у меня полгода назад такое же желание. Но после прочтения статьи/иследования по поводу производительности new и final в мултипоточной среде... оно прошло ))) Там где-то по середине работы по разбору кода JVM (выделения памяти new) , народ просто написал (по английски и вежливее) "бл?*:! Так у нас тут ошибка и возможны гонки" - после чего я понял, что в subj разбирается чуть больше, чем никто. По крайне мере, авторы JVM точно "таки четко" не разбираются ))). Т.ч. свои желания подавил и просто копи пастом взял готовый алгоритм )))
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Пример безопасной, небезопасной и публикации через гонку.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]