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

93
Что такое блокировка реентера и концепция в целом?

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

89
Монитор против блокировки

Когда в C # целесообразно использовать Monitorкласс или lockключевое слово для обеспечения безопасности потоков? РЕДАКТИРОВАТЬ: Судя по ответам до сих пор, lockэто короткая рука для серии вызовов Monitorкласса. Для чего именно нужен вызов блокировки? Или, точнее, class LockVsMonitor { private...

89
Смущает UPDLOCK, HOLDLOCK

Изучая использование подсказок по таблицам , я столкнулся с двумя вопросами: Какие подсказки блокировки мне следует использовать (T-SQL)? Как влияет HOLDLOCK на UPDLOCK? Ответы на оба вопроса говорят о том, что при использовании (UPDLOCK, HOLDLOCK)другие процессы не смогут читать данные в этой...

87
lock (new object ()) - Культ груза или какой-то сумасшедший «особый случай языка»?

Я просматриваю код, написанный консультантом, и, хотя уже появились десятки красных флажков, я не могу осмыслить следующий фрагмент: private void foo() { if (InvokeRequired) { lock (new object()) { if (m_bar!= null) Invoke(new fooDelegate(foo), new object[] { }); } } else { if(OnBazChanged !=...

87
Остается ли заблокированный объект заблокированным, если внутри него возникает исключение?

В приложении для потоковой передачи С #, если бы я заблокировал объект, скажем, очередь, и если произойдет исключение, останется ли объект заблокированным? Вот псевдокод: int ii; lock(MyQueue) { MyClass LclClass = (MyClass)MyQueue.Dequeue(); try { ii = int.parse(LclClass.SomeString); } catch {...

86
В чем разница между: асинхронной, неблокирующей и событийной архитектурой?

Какая разница между: Асинхронный , Неблокирующий и Архитектуры на базе событий ? Может ли что-то быть как асинхронным, так и неблокирующим (и основанным на событиях )? Что важнее всего в программировании, чтобы что-то было: асинхронное, неблокирующее и / или событийная (или все 3)? Если бы вы...

84
Когда и как использовать Торнадо? Когда это бесполезно?

Хорошо, Tornado неблокирующий, довольно быстрый и легко справляется с множеством постоянных запросов. Но я думаю, это не серебряная пуля, и если мы просто вслепую запустим Django или любой другой сайт с Tornado, это не даст никакого прироста производительности. Я не смог найти исчерпывающего...

83
Как реализовать блокировку в JavaScript

Как можно lockбыло реализовать что-то, эквивалентное C #, в JavaScript? Итак, чтобы объяснить, что я думаю, простой вариант использования: Пользователь нажимает кнопку B. Bвызывает событие onclick. Если Bв , event-stateожидает событие для Bбыть в ready-stateперед его распространением. Если Bесть...

83
Блокировка исполняемых файлов: Windows делает, Linux - нет. Почему?

Я заметил, что когда файл выполняется в Windows (.exe или .dll), он заблокирован и не может быть удален, перемещен или изменен. Linux, с другой стороны, не блокирует исполняемые файлы, и вы можете удалять, перемещать или изменять их. Почему Windows блокируется, а Linux - нет? Есть ли преимущество...

82
Как прервать BlockingQueue, который блокирует take ()?

У меня есть класс, который берет объекты из a BlockingQueueи обрабатывает их, вызывая take()в непрерывном цикле. В какой-то момент я знаю, что больше никаких объектов в очередь не будет. Как мне прервать take()метод, чтобы он перестал блокироваться? Вот класс, обрабатывающий объекты: public class...

82
C неблокирующий ввод с клавиатуры

Я пытаюсь написать программу на C (в Linux), которая зацикливается, пока пользователь не нажмет клавишу, но не требует нажатия клавиши для продолжения каждого цикла. Есть простой способ сделать это? Я полагаю, я мог бы сделать это сselect() но это похоже на большую работу. В качестве альтернативы,...

79
Принудительный тайм-аут запроса в SQL Server

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