Форум: "Основная";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Внизмногопоточность и общие переменные Найти похожие ветки
← →
Vir © (2006-05-01 15:01) [0]Из нескольких потоков есть доступ на чтение/запись к глобальным пременных типа boolean, integer. Есть ли необходимость при доступе к переменным окружать их обектами синхронизации (Mutex или CriticalSection)?
← →
Eraser © (2006-05-01 15:28) [1]
> Vir © (01.05.06 15:01)
> Есть ли необходимость при доступе к переменным окружать
> их обектами синхронизации (Mutex или CriticalSection)?
однобайтные переменные (boolean например) не надо, остальные - надо.
← →
DrPass © (2006-05-01 16:22) [2]
> однобайтные переменные (boolean например) не надо, остальные
> - надо.
:-) Трехбайтные тоже не надо. Можно подумать, процессоры проектируют технические садисты, и при переключении контекстов у текущего потока выдергивают управление "на половине операции".
← →
Eraser © (2006-05-01 16:52) [3]
> DrPass © (01.05.06 16:22) [2]
ну да ) вроде бы выравневание сейчас по 4 байта идёт, так что теоретически и 4 байтные не надо синхронизировать, хотя всё зависит от того, какие операции опроисходят при считывании/записи..
← →
Leonid Troyanovsky © (2006-05-01 20:08) [4]
> Vir © (01.05.06 15:01)
> Из нескольких потоков есть доступ на чтение/запись к глобальным
> пременных типа boolean, integer. Есть ли необходимость при
Достаточно InterlockedExchange.
--
Regards, LVT.
← →
Shaman_Naydak (2006-05-01 21:32) [5]Чтение синхронизировать не надо. (до 4 байт).
Запись синхронизировать надо. Ибо если уж работаете в нескольких потоках, то закладывайтесь на честную параллельность...
А какую именно, действительно зависит от характера взаимодействия..
InterlockedExchange для простейшего случая дейтвительно самое оно!
← →
evvcom © (2006-05-02 08:43) [6]
> Чтение синхронизировать не надо. (до 4 байт).
> Запись синхронизировать надо.
в одном потоке:if i <> 0 then Result := a div i; // только чтение
в другом:EnterCriticalSection(...);
i := 0; // запись
LeaveCriticalSection(...);
Так что ли надо? Нетрудно догадаться, каков будет результат. :)
Все зависит от ситуации.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c