Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.15;
Скачать: CL | DM;

Вниз

Корректность считывания переменной из потоков   Найти похожие ветки 

 
Добежал   (2008-12-10 17:23) [0]

Допустим, имеем некоторый флаг boolean и его значение устанавливается где-то в других потоках, когда устанавливается/меняется - неизвестно.

Корректно ли в потоке напрямую считывать значение этой переменной? Аля:

if bPlaySound then PlaySound;

Не может ли это каким-либо образом нарушить корректность присвоения переменной в другом потоке (который возможно устанавливает значение как раз в момент проверки условия)? По идее не должно, но что-то вдруг подумалось, мало ли что...


 
Сергей М. ©   (2008-12-10 17:26) [1]

Корректно.


 
Добежал   (2008-12-17 13:30) [2]

спасибо, так и думал.... Впрочем до сих пор сомнения остались ;))))


 
Ega23 ©   (2008-12-17 13:32) [3]

Читать можно без проблем. Скажем, это идеологически и эстетически не очень хорошо, но - можно. А вот писать уже нельзя.


 
Alkid   (2008-12-17 13:58) [4]


> Ega23 ©   (17.12.08 13:32) [3]

Гм. На самом деле, если операция присвоения булевского значения атомарна - то можно. Да и вообще всё сильно зависит от задачи.


 
clickmaker ©   (2008-12-17 14:09) [5]

авторы языков Си и С# придумали спецслово volatile. Для переменных, измененяемых разными потоками, чтобы предотвратить вредную в данном случае оптимизацию


 
Добежал   (2008-12-17 16:30) [6]


> Читать можно без проблем. Скажем, это идеологически и эстетически
> не очень хорошо, но - можн


ну почему нехорошо. Просто не хочется считывание переменной также обращать в критическую секцию.



Страницы: 1 вся ветка

Текущий архив: 2009.02.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
2-1230641465
neveGreen
2008-12-30 15:51
2009.02.15
Помогите написать функцию


6-1198764017
BillyJeans
2007-12-27 17:00
2009.02.15
Поиск ресурсов в сети...


11-1197220362
Elec3C
2007-12-09 20:12
2009.02.15
Drag n Drop в ListBox


2-1230973748
studenttgata
2009-01-03 12:09
2009.02.15
Как получить относительный путь к файлу через OpenDialog?


15-1229467237
Керк
2008-12-17 01:40
2009.02.15
Интересный текст