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

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


8
Как избежать mysql 'Deadlock найден при попытке получить блокировку; попробуйте перезапустить транзакцию
У меня есть таблица innoDB, которая записывает пользователей онлайн. Он обновляется при каждом обновлении страницы пользователем, чтобы отслеживать, на каких страницах он находится, и дату их последнего доступа к сайту. Затем у меня есть cron, который запускается каждые 15 минут для УДАЛЕНИЯ старых записей. Я обнаружил тупик при попытке получить …
286 mysql  deadlock 

3
жду vs Task.Wait - тупик?
Я не совсем понимаю разницу между Task.Waitиawait . У меня есть что-то похожее на следующие функции в службе ASP.NET WebAPI: public class TestController : ApiController { public static async Task<string> Foo() { await Task.Delay(1).ConfigureAwait(false); return ""; } public async static Task<string> Bar() { return await Foo(); } public async static …

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

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

5
'await' работает, но при вызове task.Result зависает / блокируется
У меня есть следующие четыре теста, и последний зависает, когда я его запускаю. Почему это происходит: [Test] public void CheckOnceResultTest() { Assert.IsTrue(CheckStatus().Result); } [Test] public async void CheckOnceAwaitTest() { Assert.IsTrue(await CheckStatus()); } [Test] public async void CheckStatusTwiceAwaitTest() { Assert.IsTrue(await CheckStatus()); Assert.IsTrue(await CheckStatus()); } [Test] public async void CheckStatusTwiceResultTest() { Assert.IsTrue(CheckStatus().Result); …
126 c#  nunit  task  deadlock  async-await 


4
Причина того, что процесс оказался жертвой тупика
У меня есть процесс с Select, который занимает много времени, порядка 5-10 минут. В настоящее время я не использую NOLOCK в качестве подсказки для механизма базы данных MS SQL. В то же время у нас есть другой процесс, выполняющий обновления и вставки в ту же базу данных и те же …

5
Пример async / await, вызывающий тупик
Я столкнулся с некоторыми передовыми практиками асинхронного программирования с использованием ключевых слов async/ awaitслов в C # (я новичок в C # 5.0). Один из полученных советов был следующим: Стабильность: знайте свои контексты синхронизации ... Некоторые контексты синхронизации не реентерабельные и однопоточные. Это означает, что только одна единица работы может …

3
Как отловить SqlException, вызванное тупиком?
Из приложения .NET 3.5 / C # я бы хотел поймать, SqlExceptionно только если это вызвано тупиками в экземпляре SQL Server 2008. Типичное сообщение об ошибке: Transaction (Process ID 58) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. Тем …

6
C ++ terminate вызывается без активного исключения
Я получаю ошибку C ++ при потоковой передаче: terminate called without an active exception Aborted Вот код: #include <queue> #include <thread> #include <mutex> #include <condition_variable> template<typename TYPE> class blocking_stream { public: blocking_stream(size_t max_buffer_size_) : max_buffer_size(max_buffer_size_) { } //PUSH data into the buffer blocking_stream &operator<<(TYPE &other) { std::unique_lock<std::mutex> mtx_lock(mtx); while(buffer.size()>=max_buffer_size) stop_if_full.wait(mtx_lock); …

28
Примеры простых тупиков
Я хотел бы объяснить новичкам многопоточность тупиков. В прошлом я видел много примеров тупиковых ситуаций, некоторые с использованием кода, а некоторые с использованием иллюстраций (например, знаменитые 4 машины ). Существуют также классические задачи, которые легко зайти в тупик, такие как The Dining Philosophers , но они могут быть слишком сложными …

13
Напишите программу, которая наверняка зайдет в тупик [закрыто]
Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 5 лет назад . Уточните этот вопрос Недавно мне задали этот вопрос в интервью. Я ответил, …

3
Почему параллельный поток с лямбдой в статическом инициализаторе вызывает тупик?
Я столкнулся со странной ситуацией, когда использование параллельного потока с лямбдой в статическом инициализаторе, казалось бы, занимает вечность без использования ЦП. Вот код: class Deadlock { static { IntStream.range(0, 10000).parallel().map(i -> i).count(); System.out.println("done"); } public static void main(final String[] args) {} } Это, по-видимому, минимальный тестовый пример воспроизведения для такого …

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.