locking- все статьи тега


Монитор против замка

Когда уместно использовать класс Monitor или ключевое слово lock для потокобезопасности в C#? Редактировать: Судя по ответам до сих пор, lock - это короткая рука для серии вызовов класса Monitor. Что именно замок звонок короткий-руку? Или более явно, class LockVsMonitor { private readonly object LockObject = new object(); public void DoThreadSafeSomethingWithLock(Action action) { lock (LockObject) { action.Invoke(); } } public void Do ...

Process / SPID блокируется сам по себе, как очистить / убить без перезапуска Sql Server

У нас есть процесс, который работал в течение 4 часов. Поскольку он работал так долго, это вызывало другие проблемы в базе данных, поэтому было решено убить процесс. Теперь процесс находится в приостановленном состоянии. Он также заявляет, что блокируется сам по себе после запроса sp_who2. В мониторе активности, вот информация об источнике ожидания: objectlock lockPartition=0 objid=xxx subresource=FULL dbid=2 id=lockyyyy mode=X associatedObjectid=xxx Вы заметите, что objid и associatedObjec ...

Использование C# ConcurrentBag с несколькими производителями и одним потребителем

У меня есть ситуация, когда несколько потоков создают один объект ICollection. ConcurrentBag кажется лучшим (?) решение, так как-1) каждый поток будет иметь свою собственную локальную очередь, и 2) потокам не нужно общаться - они независимы. Пока все хорошо, но правда в том, что мне нужно вернуть Исет из этого метода (после того, как все производители прекратили). Даже если текущий экземпляр ConcurrentBag отличается от (это гарантируется логикой приложения) , Мне все еще нужно преобразовать его ...

Блокировка геттера и сеттера булевых свойств

Есть ли какая-либо причина, по которой вы создаете блокировки вокруг геттера и сеттера логического свойства, подобного этому? private _lockObject = new object(); private bool _myFlag; public bool MyFlag { get { lock (_lockObject) { return _myFlag; } } set { lock (_lockObject) { _myFlag = value; } } } ...

Оптимистическая и пессимистическая блокировка

Я понимаю разницу между оптимистической и пессимистической блокировкой*. Теперь может кто-нибудь объяснить мне, когда я буду использовать любой из них вообще? и меняется ли ответ на этот вопрос в зависимости от того, использую ли я хранимую процедуру для выполнения запроса? *но просто чтобы проверить, оптимистический означает "не блокировать таблицу во время чтения" и пессимистический означает "заблокировать таблицу во время чтения." ...

Есть ли преимущество в использовании синхронизированного метода вместо синхронизированного блока?

может ли кто-нибудь сказать мне преимущество синхронизированного метода над синхронизированным блоком с примером? ...

Эффект подсказки NOLOCK в операторах SELECT

Я думаю, что реальный вопрос: Если я не забочусь о грязных чтениях, будет добавление С (NOLOCK) подсказка к инструкции SELECT влияет на производительность: текущий оператор SELECT другие транзакции по данной таблице пример: Select * from aTable with (NOLOCK) ...

Что такое тупик?

при написании многопоточных приложений одной из наиболее распространенных проблем являются тупики. мои вопросы к сообществу: Что такое тупик? Как вы их обнаруживаете? вы справляетесь с ними? и, наконец, как вы предотвращаете их появление? ...

Насколько эффективна блокировка разблокированного мьютекса? Какова стоимость мьютекса?

на языке низкого уровня (C, C++ или что-то еще): у меня есть выбор между тем, чтобы иметь кучу мьютексов (например, то, что дает мне pthread или что предоставляет собственная системная библиотека) или один для объекта. насколько эффективно блокировать мьютекс? Т. е. сколько существует инструкций ассемблера и сколько времени они занимают (в случае разблокировки мьютекса)? сколько стоит мьютекс? Это проблема, чтобы иметь действительно a много мьютексы? Или я могу просто бросить столько переменны ...

Python: один экземпляр программы

есть ли Питонический способ иметь только один экземпляр запущенной программы? единственное разумное решение, которое я придумал, пытается запустить его как сервер на каком - то Порту, а затем вторая программа пытается привязаться к тому же порту-не удается. Но это не очень хорошая идея, может быть, есть что-то более легкое, чем это? (примите во внимание, что иногда ожидается сбой программы, т. е. segfault-поэтому такие вещи, как" lock file", не будут работа) обновление: предлагаемые решени ...

MySQL: транзакции против таблиц блокировки

Я немного запутался с транзакциями против блокировки таблиц, чтобы обеспечить целостность базы данных и убедиться, что выбор и обновление остаются синхронизированными, и никакое другое соединение не мешает ему. Мне нужно: SELECT * FROM table WHERE (...) LIMIT 1 if (condition passes) { // Update row I got from the select UPDATE table SET column = "value" WHERE (...) ... other logic (including INSERT some data) ... } мне нужно убедиться, что никакие другие запросы не будут мешать и ...

Как предотвратить блокировку экрана в моем приложении с помощью swift на IOS

Как я могу предотвратить блокировку экрана только при использовании навигации. У Waze есть возможность сделать это, как я могу сделать это в своем приложении? ...

Как отключить домашние и другие системные кнопки в Android?

мне нужно отключить домашние и другие системные кнопки в моем приложении для Android. пример:MX Player ( смотрите в Google Play) - вы можете нажать значок "блокировка" на экране проигрывателя, и он блокирует все аппаратные и программные кнопки системы. Он отлично работает без укоренения. Я тестировал его на некоторых устройствах с различными версиями Android. Я попытался разобрать Kids Lock (плагин), но пока не знаю, как это работает. I нужно же решение, как дети блокировки (плагин) для MX ...

Является ли bool атомарным для чтения / записи в C#

обращается к буль поле atomic в C#? В частности, мне нужно поставить замок вокруг: class Foo { private bool _bar; //... in some function on any thread (or many threads) _bar = true; //... same for a read if (_bar) { ... } } ...

Что такое замок для повторного входа и концепция в целом?

Я всегда путаю. Кто-нибудь объяснит, что Reentrant означает в разных контекстах? И почему вы хотите использовать реентерабельность против нереентерабельности? скажем, pthread (posix) блокирующие примитивы, они повторно вступают или нет? Каких подводных камней следует избегать при их использовании? является ли мьютекс re-entrant? ...

Git 'fatal: не удается написать новый индексный файл'

Я видел много других тем об этом, и они не помогают. У меня есть очень простое РЕПО - два файла JavaScript. У меня есть 100+ ГБ на Macbook. Когда я пытаюсь переместить файлы в подкаталог и этап локально изменения, которые я получаю ... fatal: невозможно написать новый индексный файл Это происходит ли я делаю все действия в терминале или если я использую графический интерфейс, как SourceTree. Кроме того, один из файлов становится заблокированным, и я не могу удалите рабочий каталог, пока я ...

Принудительное время ожидания запроса в SQL Server

У нас была проблема с блоком кода, который плохо реагирует перед лицом медленных баз данных (он крепит кровать на тайм-аут запроса). Мы создали патч и находимся в процессе его запуска через регрессию. мы не можем взять тайм-аут. Я открыл транзакцию из SQL Mgmt Studio и обновил каждую строку, чтобы заблокировать их, но это не приводит к таймауту вставки (что мне и нужно). могу ли я легко получить блокировку на уровне таблицы через T-SQL? Или мне придется возиться с мастером? Или я могу легко за ...

Блокировка чтения / записи в C++

Я ищу хороший замок для чтения / записи в C++. У нас есть случай использования одного нечастого писателя и многих частых читателей, и мы хотели бы оптимизировать для этого. Предпочтительно я хотел бы кросс-платформенное решение, однако Windows только один будет приемлемым. ...