Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Атомарный доступ к разделяемому ресурсу / 3 сообщений из 3, страница 1 из 1
20.03.2014, 09:57
    #38591483
AlexLag
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Атомарный доступ к разделяемому ресурсу
Здравстуйте, уважаемые форумчане. Такой вопрос назрел.

Код: c#
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.
//Глобальная переменная
private Decimal var_gloval;
//используем для атомарного доступа
private Object locker=new Object();
 
 
//Этот код выполняет первый поток
///////////////////////////////
string number="12.25";
lock(locker)
{
var_global=Decimal.Parse(number);
}
//////////////////////////////
 
 
//Этот код выполняет второй поток
////////////////////////////////
//Вспомогательная перменная
decimal temp_decimal_var;
lock(locker)
{
temp_decimal_var=var_global;
}
//Пишем в БД значение глобальной переменной
StoreToDB(temp_decimal_var);
////////////////////////////////



Гарантирует ли такой код атомарность записи(чтения) в(из) переменную(ой) var_global значения из двух разных потоков? Т.е. не возможна ли такая ситуация, что к примеру первый поток успеет записать только целую часть в глобальную переменную var_global, затем планировщик потоков переключит контекст на выполнение второго потока и в итоге в базу запишется значение var_global, в котором в дробной части будет содержаться
предыдущее значение переменной, до её изменения первым потоком? В основном в литературе были примеры, когда осуществлялась блокировка ресурса в одном методе, к которому обращались разные потоки. А вот как будет, если эти потоки будут обращаться к общему ресурсу через разные методы? Спасибо.
...
Рейтинг: 0 / 0
20.03.2014, 10:34
    #38591522
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Атомарный доступ к разделяемому ресурсу
Гарантирует, да, если locker - один и тот же объект и там, и там.
...
Рейтинг: 0 / 0
20.03.2014, 10:50
    #38591539
AlexLag
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Атомарный доступ к разделяемому ресурсу
Pallaris, спасибо! Вы развеяли мои сомнения! Тема закрыта.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Атомарный доступ к разделяемому ресурсу / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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