Публикации по теме 'deadlock'


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

Как справиться с тупиковой ситуацией ?
Что такое тупик? Говорят, что набор процессов находится в тупиковой ситуации, когда каждый процесс в наборе ожидает события, которое может быть вызвано другим процессом в наборе. В приведенном выше примере процессы P1 и P2 находятся в тупиковой ситуации. Оба процесса требуют R1 и R2 для завершения своего выполнения. Процесс P1 имеет R1, но ожидает ресурс R2, а процесс P2 имеет R2, но ожидает R1. Теперь в этом случае оба процесса ожидают некоторого ресурса, который уже получен..

Вопросы по теме 'deadlock'

Как отлаживать тупик с помощью Python?
Я разрабатываю многопоточное приложение, которое заходит в тупик. Я использую Visual C ++ Express 2008 для отслеживания программы. Как только возникает тупик, я просто приостанавливаю программу и отслеживаю. Я обнаружил, что при возникновении...
4416 просмотров
schedule 16.02.2024

Как решить тупиковую ситуацию вставки/удаления в некластеризованном индексе?
У меня возникла проблема взаимоблокировки, и я обнаружил, что она вызвана двумя хранимыми процедурами, которые вызываются разными потоками (2 из которых называются веб-службами). Insert sp , который вставляет данные в таблицу X. Удалить sp ,...
9328 просмотров
schedule 14.01.2024

Нет управляемого потока в дампе, созданном осиротевшим пулом приложений IIS 64-разрядного ASP.NET
Мне нужно найти причину для события с кодом 2262, обнаружена тупиковая ситуация в нашем приложении ASP.NET (64-разрядная версия). На нашем сервере разработки это происходит 1-3 раза в день. Я создал мини-дамп с полной памятью, отключив пул...
518 просмотров
schedule 02.01.2024

Как избежать обнаружения тупика MySQL при попытке получить блокировку; попробуйте перезапустить транзакцию '
У меня есть таблица innoDB, в которой записываются онлайн-пользователи. Он обновляется при каждом обновлении страницы пользователем, чтобы отслеживать, на каких страницах они находятся, и дату их последнего доступа к сайту. Затем у меня есть cron,...
428431 просмотров
schedule 25.02.2024

TerminateProcess и взаимоблокировки
Реально ли функция TerminateProcess в Windows могла зависнуть из-за того, что потоки внутри процесса застряли в тупике? Пример: процесс A выполняется под контролем процесса B, теперь процесс A попадает в тупик, и процесс B обнаруживает это и решает...
847 просмотров
schedule 15.12.2023

Взаимоблокировки объединенных подклассов Hibernate с MSSQL
Я использую Hibernate с присоединенными подклассами для сопоставления иерархии классов с базой данных. К сожалению, это вызывает взаимоблокировки, когда объект обновляется, когда другой поток пытается загрузить тот же объект. С объектами,...
1858 просмотров
schedule 24.11.2023

Общие сведения о взаимоблокировках с помощью уведомлений о запросах SQL Server
У меня возникают проблемы с уведомлениями о запросах на SQL Server 2008 sp1. У меня есть таблица _sys_Events, в которую несколько авторов записывают записи, а несколько читателей выполняют операторы SELECT с уведомлением о запросе, чтобы немедленно...
1760 просмотров

тупик производитель-потребитель pthreads
Я написал следующий код: void *produce(void* arg) { buffer* buff = (buffer *) arg; while (1) { pthread_mutex_lock(&mutex); if (elements_produced == JOB_SIZE) { pthread_mutex_unlock(&mutex); pthread_exit(NULL); }...
1160 просмотров

тупик транзакции mysql
Время от времени я получаю ошибки взаимоблокировки mysql, вызванные состоянием гонки. Мне удалось воспроизвести ошибку следующим образом. Транзакция 1 начать транзакцию вставить в fixtradeshistory (выбрать null, fixtrades.* из fixtrades, где...
4829 просмотров
schedule 02.12.2022

Как я могу устранить взаимоблокировку транзакции?
Используя «show engine innodb status», я вижу, что WordPress имеет две взаимоблокировки. Я хотел бы прояснить это, но я не вижу активного процесса ни для одной из этих команд (IE что-то, что нужно «убить» и, надеюсь, вызвать откат). Я вижу...
59576 просмотров
schedule 23.05.2024

Какова хорошая стратегия для параллельной обработки очереди?
Я пишу программу, которая должна рекурсивно искать в структуре папок и хотела бы делать это параллельно с несколькими потоками. Я уже написал довольно тривиальный синхронный метод — первоначальное добавление корневого каталога в очередь, затем...
2840 просмотров
schedule 24.01.2024

Проблема многопоточности WinForms
У меня есть поток, который выполняет некоторую работу в фоновом режиме и передает обновления в форму с помощью методов Invoke, BeginInvoke. Поток создается после отображения формы, поэтому здесь нет проблем. Вопрос в том, как правильно выключить....
191 просмотров

Будут ли взаимоблокировки влиять на меня, даже если я не использую транзакции?
Мы хотим перейти с MyISAM на InnoDB по нескольким причинам, но мы не собираемся использовать транзакции с BEGIN/COMMIT и т. д. Есть ли случай, когда взаимоблокировки могут возникнуть только при использовании SELECT, INSERT, UPDATE и DELETE? Мы...
401 просмотров
schedule 07.04.2024

Повторно отправить заблокированную транзакцию php
Я хотел бы добавить некоторую логику в свое приложение, чтобы оно повторно отправляло любые заблокированные транзакции. Я хотел бы знать, нужно ли мне прервать текущую транзакцию или просто повторно выполнить запрос, который не удался Итак, если я...
285 просмотров
schedule 18.11.2023

Как исправить взаимоблокировку в join() в Ruby
Я работаю в многопоточности в Ruby. Фрагмент кода: threads_array = Array.new(num_of_threads) 1.upto(num_of_threads) do |i| Thread.abort_on_exception = true threads_array[i-1] = Thread.new { catch(:exit) do...
8911 просмотров
schedule 16.10.2022

Почему не рекомендуется вызывать метод release() бинарного семафора из блока finally?
Чтобы убедиться, что Lock разблокирован, рекомендуется вызывать метод unlock() из блока finally: lock.lock(); try{ // critical section which may throw exceptions } finally { lock.unlock(); } Это делается для того, чтобы избежать...
468 просмотров

Взаимоблокировка файла загрузки данных Infobright/MySQL
Я столкнулся с тупиковой ситуацией при использовании нескольких одновременных команд LOAD DATA INFILE. Вот фон: Я разработал инструмент ETL на основе Java, который загружает плоские файлы в базы данных Infobright (Infobright — это столбцовая база...
1020 просмотров
schedule 30.11.2023

Как узнать, кому принадлежит ReaderWriterLockSlim?
Я пишу приложение, которое широко использует многопоточность. Некоторые потоки совместно используют наблюдаемую коллекцию с помощью ReaderWriterLockSlim. Время от времени у меня возникает тупик, и мне нужно знать, какой поток удерживает блокировку...
1334 просмотров

Как я могу отладить этот тупик при выпуске AVAudioPlayer?
В моем приложении для iPhone у меня есть экземпляр AVAudioPlayer, который я выпускаю (чтобы затем я мог инициализировать другой экземпляр с другим URL-адресом вместо него). Обычно это работает нормально, но иногда я получаю тупик в основном потоке:...
1597 просмотров
schedule 21.05.2024

Как System.out.format может предотвратить взаимоблокировку?
Я обнаружил, что включение вызова System.out.format в классический Учебное пособие по взаимоблокировке Java предотвратит взаимоблокировку, и я не могу понять, почему. Приведенный ниже код такой же, как и в учебнике, с добавлением main из...
396 просмотров
schedule 02.06.2024