Вопросы с тегом «locking»

Блокировка позволяет одновременно использовать разные типы ресурсов исключительно одним процессом.

846
Есть ли способ проверить, используется ли файл?

Я пишу программу на C #, которая должна повторно получить доступ к 1 файлу изображения. В большинстве случаев это работает, но если мой компьютер работает быстро, он попытается получить доступ к файлу до его сохранения в файловой системе и выдаст ошибку: «Файл используется другим процессом» . Я...

672
Летучий против Блокированный против блокировки

Допустим, у класса есть public int counterполе, доступ к которому осуществляется несколькими потоками. Это intтолько увеличивается или уменьшается. Чтобы увеличить это поле, какой подход следует использовать и почему? lock(this.locker) this.counter++;, Interlocked.Increment(ref this.counter);,...

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

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

527
Как работает блокировка?

Я вижу, что для использования объектов, которые не являются потокобезопасными, мы заключаем код в блокировку следующим образом: private static readonly Object obj = new Object(); lock (obj) { // thread unsafe code } Так что же происходит, когда несколько потоков обращаются к одному и тому же коду...

507
Неблокирующее чтение на подпроцесс. PIPE в Python

Я использую модуль подпроцесса, чтобы запустить подпроцесс и подключиться к его выходному потоку (stdout). Я хочу иметь возможность выполнять неблокирующие чтения на своем стандартном выводе. Есть ли способ сделать .readline неблокирующим или проверить, есть ли данные в потоке, прежде чем я вызову...

484
Почему блокировка (это) {…} плохая?

В документации MSDN сказано, что public class SomeObject { public void SomeOperation() { lock(this) { //Access instance variables } } } «проблема, если экземпляр доступен публично». Мне интересно почему? Это потому, что замок будет держаться дольше, чем необходимо? Или есть еще какая-то коварная...

208
Случаются ли ложные пробуждения в Java на самом деле?

Рассматривая различные вопросы, связанные с блокировкой, и (почти) всегда находя термин «цикл из-за ложных пробуждений» 1 Интересно, кто-нибудь испытывал такое пробуждение (например, при условии достойной аппаратной / программной среды)? Я знаю, что термин «ложный» означает отсутствие очевидной...

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

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

191
Java синхронизирует метод блокировки объекта или метода?

Если у меня есть 2 синхронизированных метода в одном и том же классе, но каждый имеет доступ к разным переменным, могут ли 2 потока получить доступ к этим двум методам одновременно? Происходит ли блокировка объекта или он становится таким же специфичным, как переменные внутри синхронизированного...

187
Рекурсивная блокировка (мьютекс) против нерекурсивной блокировки (мьютекс)

POSIX позволяет мьютексам быть рекурсивными. Это означает, что один и тот же поток может заблокировать один и тот же мьютекс дважды и не будет блокироваться. Конечно, он также должен разблокировать его дважды, иначе никакой другой поток не сможет получить мьютекс. Не все системы, поддерживающие...

164
Каковы различия между различными параметрами синхронизации потоков в C #?

Может кто-нибудь объяснить разницу между: блокировка (некоторый объект) {} Использование Mutex Используя семафор Использование монитора Использование других классов синхронизации .Net Я просто не могу понять это. Мне кажется, первые два...

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

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

158
Возможен ли асинхронный вызов jdbc?

Интересно, есть ли способ совершать асинхронные вызовы к базе данных? Например, представьте, что у меня большой запрос, который обрабатывается очень долго, я хочу отправить запрос и получить уведомление, когда запрос вернет значение (путем передачи Listener / callback или чего-то еще). Я не хочу...

155
Как узнать, какой процесс блокирует файл с помощью .NET?

Я видел несколько ответов об использовании Handle или Process Monitor , но мне хотелось бы узнать в своем собственном коде (C #), какой процесс блокирует файл. У меня неприятное чувство, что мне придется поболтать в Win32 API, но если кто-то уже сделал это и может поставить меня на правильный путь,...

152
Блокировка файла в Python

Мне нужно заблокировать файл для записи в Python. Он будет доступен сразу из нескольких процессов Python. Я нашел некоторые решения в Интернете, но большинство из них не подходят для моих целей, поскольку они часто основаны только на Unix или...

152
Параллельный HashSet <T> в .NET Framework?

У меня есть следующий класс. class Test{ public HashSet<string> Data = new HashSet<string>(); } Мне нужно изменить поле «Данные» из разных потоков, поэтому я хотел бы высказать некоторые мнения о моей текущей поточно-безопасной реализации. class Test{ public HashSet<string> Data =...

150
Самый простой способ сделать огонь и забыть метод в C #?

Я видел в WCF у них есть [OperationContract(IsOneWay = true)]атрибут. Но WCF кажется медленным и тяжелым только для того, чтобы создать неблокирующую функцию. В идеале было бы что-то вроде статического неблокирования пустот MethodFoo(){}, но я не думаю, что оно существует. Какой самый быстрый...