Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
67 / 67 / 23
Регистрация: 07.11.2013
Сообщений: 539
1
.NET 4.x

Зачем оператору lock в качестве параметра нужен объект (object)

03.08.2014, 20:53. Просмотров 1994. Ответов 5
Метки нет (Все метки)

Зачем оператору lock в качестве параметра нужен объект (object)
C#
1
2
3
4
lock (lockObject)
{
     //...
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2014, 20:53
Ответы с готовыми решениями:

Напишите функцию печати массива, принимающую в качестве параметра объект типа Object
Здравствуйте. Помогите пожалуйста с заданием: "Напишите функцию печати массива, принимающую в...

Зачем в качестве параметра передавать null и потом использовать его как массив?
Я встретил такой код и он УБИЛ МЕНЯ НАПОВАЛ(: public static function getCellsWeight($kpW,...

Как изменять передаваемый в качестве параметра объект?
#Location object class Location: cx, cy = 0, 0 def __init__(self, x, y): self.cx,...

Указатель на объект в качестве параметра вызываемого метода класса
Код по сути //Interface.cpp #include "Interface.h" void Interface::input() { Teplitsa *kaka;...

5
867 / 717 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
03.08.2014, 21:18 2
maxkoshevoi,
Вы указываете элемент который блокируется
0
67 / 67 / 23
Регистрация: 07.11.2013
Сообщений: 539
03.08.2014, 21:25  [ТС] 3
В смысле элемент? Я же блокирую поток, на время выполнения кода другим потоком. Или я что-то не так понял?
0
867 / 717 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
03.08.2014, 21:32 4
maxkoshevoi,
У вас может быть два потока один из которых работает с lockObject, а другой никакого дела не имеет с lockObject.
Не будет второй поток блокироваться в таком случае.
1
Модератор
Эксперт .NET
5303 / 4098 / 1182
Регистрация: 12.10.2013
Сообщений: 11,909
Записей в блоге: 2
03.08.2014, 23:04 5
Лучший ответ Сообщение было отмечено maxkoshevoi как решение

Решение

Цитата Сообщение от maxkoshevoi Посмотреть сообщение
Я же блокирую поток
maxkoshevoi, вы блокируете по сути не поток, а общий (разделяемый между несколькими потоками) ресурс от его изменения другими потоками, пока с ним работает один поток. Объект для ключевого слова lock - просто маркер, принадлежащий данному объекту (как правило, это обычное private-поле).
2
Каратель
Эксперт С++
6598 / 4019 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
04.08.2014, 13:35 6
Лучший ответ Сообщение было отмечено maxkoshevoi как решение

Решение

Цитата Сообщение от maxkoshevoi Посмотреть сообщение
Я же блокирую поток, на время выполнения кода другим потоком. Или я что-то не так понял?
и как по-твоему поток должен узнать что надо "заблокироваться" и дождаться выполнения кода другим потоком?
для этого этим потокам нужен общий ресурс, в данном случае lockObject.
каждый объект под капотом имеет индекс блока синхронизации(или не индекс, не помню), простыми словами это счетчик который увеличивается при блокировке и уменьшается при разблокировке
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2014, 13:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Написать программу для функции, которая будет получать в качестве параметра объект одного из классов
Нужно написать программу для функции, которая будет получать в качестве параметра объект одного из...

Нужен PHP-скрипт, который в качестве параметра принимает адрес файла
Нужен PHP-скрипт, который в качестве параметра принимает адрес файла (например...

Зачем в определении std::forward () нужен объект remove_reference?
Зачем в определении std::forward() нужен объект remove_reference ? И почему не могут быть выведены...

Нужен веб-скрипт, которому в качестве параметра передаётся длинная текстовая строка.
Хелп, плз! Нужен веб-скрипт, которому в качестве параметра передаётся длинная текстовая строка. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.