|
Alvin Seville
|
|
Важно ли какой объект используется в lock?26.03.2019, 03:42. Показов 5746. Ответов 17
Метки нет (Все метки)
1
|
|
| 26.03.2019, 03:42 | |
|
Ответы с готовыми решениями:
17
Способ определить, что объект obj1 используется как объект синхронизации в текущий момент
Acer aspire 5552G-N974G64Mikk Проблема с Caps Lock, Num Lock, Scroll Lock |
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
|
|
| 26.03.2019, 06:42 | |
|
Соколиный глаз, единственное, что важно - не использовать для блокировки сам объект, в котором происходит блокировка, и держать маркер блокировки приватным. Это для защиты от deadlock'ов.
2
|
|
|
Alvin Seville
|
|
| 26.03.2019, 07:29 [ТС] | |
|
Usaga, а зачем вообще в lock требуется переменная блокировки? Почему нельзя без неё обойтись было? Я не понимаю этого.
0
|
|
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
|
|
| 26.03.2019, 07:35 | |
|
Соколиный глаз, наверное потому, что вам может потребоваться произвольное количество не связанных друг с другом блокировок?
0
|
|
|
Alvin Seville
|
|
| 26.03.2019, 07:57 [ТС] | |
|
Usaga, погодите, хорошо, а что происходит с тем обектом, который указан в lock? Как на него влияет lock?
0
|
|
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
|
|
| 26.03.2019, 08:07 | |
Сообщение было отмечено Соколиный глаз как решение
Решение
Соколиный глаз, у всех Object есть специальное поле SyncBlock, где и выставляется признак того, висит на нём блокировка, али нет. Самому объекту от этого ни холодно, ни жарко.
2
|
|
|
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|||||||||||
| 26.03.2019, 09:06 | |||||||||||
|
Всем доброе утро.
В данном вопросе более важно, что конструкция lock в общем и целом устарела. Её нужно применять, только если в "рабочий код" выполняется синхронно. А в современных условиях "рабочий код" может быть асинхронным. Возьмём пример из Метанита:
Самое интересное, что фигурные скобки можно имитировать конструкцией using { } Есть много одинаковых реализаций AsyncLock от разных производителей, которые надо доустанавливать. Но применение у них у всех понятное.
1
|
|||||||||||
|
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
|
||
| 26.03.2019, 11:54 | ||
|
А как тогда решать классическую задачу с монопольным доступом к общей переменной из нескольких потоков? Т.е. когда нужно проверить значение и после модифицировать его, гарантируя, что между проверкой и изменением значение этой переменной не будет изменено из другого потока.
0
|
||
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
|
||
| 26.03.2019, 12:20 | ||
|
Мне тоже такая формулировака не нравится.
Interlocked.CompareExchange.
3
|
||
|
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
||
| 26.03.2019, 12:53 | ||
|
Свобода творчества и самовыражения. Сейчас очень богатый выбор управления НЕсинхронно исполняющимися разными участками рабочего кода. По сравнению с началом 2000-х небо и земля. Причём идеи и алгоритмы наприлетали и из Java и других языков.
2
|
||
|
Alvin Seville
|
|
| 29.03.2019, 03:42 [ТС] | |
|
То есть объект в lock - это по сути просто флаг заблокирован ли какой то участок кода?
0
|
|
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
|
|
| 29.03.2019, 04:08 | |
|
Соколиный глаз, нет. Флаг выставляется у объекта в его специальном поле. А сам объект может выступать маркером блокировки в разных участках кода одновоременно.
2
|
|
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
|
| 29.03.2019, 07:11 | |
|
1
|
|
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
|
|
| 29.03.2019, 07:31 | |
|
TopLayer, судя по исходникам - да, это так.
0
|
|
|
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|||||||
| 29.03.2019, 08:56 | |||||||
Зачем извращать мысль, что для асинхронных участков кода lock НЕ подходит? Добавлено через 7 минут ---- Примерно то же самое, если каждому, кто написал слово "lock", крутить пальцем у виска и спрашивать, зачем он везде пишет Monitor.
0
|
|||||||
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
|
| 29.03.2019, 10:25 | |
|
0
|
|
|
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
|
|
| 29.03.2019, 12:13 | |
|
Для несведующих просьба пояснить. Чем lock плох для асинхронных операций и почему он устарел?
0
|
|
|
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
|
|
| 29.03.2019, 12:15 | |
Сообщение было отмечено amr-now как решение
Решение
Рядовой, асинхронность - модно-молодёжно, lock - цацка пердунов-пенсионеров.
![]() Добавлено через 40 секунд А вообще, это какое-то противопоставление двух разных подходов и сравниваться оно не должно.
2
|
|
| 29.03.2019, 12:15 | |
|
Помогаю со студенческими работами здесь
18
Клавиатура мигает всеми тремя индикаторами Caps Lock, Scroll Lock и Num Lock и соответственно не работает!
Работа с клавиатурой (клавиши num lock, caps lock, scroll lock)
Можно ли в разных lock() одновременно использовать один и тот же объект синхронизации Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|