Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / общий доступ к переменной / 7 сообщений из 7, страница 1 из 1
18.02.2018, 18:50
    #39603727
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
общий доступ к переменной
Я что-то запутался в хелпах и исходниках.

Есть
Код: pascal
1.
var CurrentChar : TBaseCharacter = nil;



обращения идут из разных потоков, устанавливается из мейнтреда.

подскажите, равны ли с прикладной точки зрения сл. коды?

Код: pascal
1.
2.
3.
4.
5.
//set
CurrentChar := AtomicExchange(Pointer(CurrentChar),Pointer(NewCharObj));

//get
zzz := CurrentChar;


и

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
//псевдокод

//set
procedure SetCurrentChar(Value : TBaseCharacter);
begin
CurrentCharCritSection.Enter;
CurrentChar := Value;
CurrentCharCritSection.Leave;
end;
//get
function GetCurrentChar : TBaseCharacter;
begin
CurrentCharCritSection.Enter;
Result := CurrentChar ;
CurrentCharCritSection.Leave;
end;



ведь, насколько я понял AtomicExchange за счет атомарности не сможет наложиться\помешать чтению из переменной.

P.S. Вопрос не в скорости, а в отсутствии ошибок при обращении из разных потоков.
...
Рейтинг: 0 / 0
18.02.2018, 19:54
    #39603738
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
общий доступ к переменной
Если речь идёт только о присвоении и получении указателя, то на интелообразной архитектуре
их можно вообще не синхронизировать. Thorn read на размере указателя нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.02.2018, 20:04
    #39603739
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
общий доступ к переменной
а не на интеле?
...
Рейтинг: 0 / 0
18.02.2018, 20:16
    #39603744
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
общий доступ к переменной
Vizit0rа не на интеле?

Кто-то видел винду с её критическими секциями не на интеле?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.02.2018, 20:41
    #39603755
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
общий доступ к переменной
в дельфах для невинды критсекции работают через TMonitor
...
Рейтинг: 0 / 0
19.02.2018, 16:22
    #39604358
Василий №2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
общий доступ к переменной
Что есть TBaseCharacter? Если по размеру меньше Pointer, то можно не заморачиваться
...
Рейтинг: 0 / 0
19.02.2018, 16:36
    #39604364
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
общий доступ к переменной
обычный класс, считай указатель.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / общий доступ к переменной / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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