Публикации по теме '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 просмотров
schedule
24.04.2024
тупик производитель-потребитель 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 просмотров
schedule
19.04.2024
тупик транзакции 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 просмотров
schedule
28.02.2024
Будут ли взаимоблокировки влиять на меня, даже если я не использую транзакции?
Мы хотим перейти с 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 просмотров
schedule
11.05.2024
Взаимоблокировка файла загрузки данных Infobright/MySQL
Я столкнулся с тупиковой ситуацией при использовании нескольких одновременных команд LOAD DATA INFILE. Вот фон:
Я разработал инструмент ETL на основе Java, который загружает плоские файлы в базы данных Infobright (Infobright — это столбцовая база...
1020 просмотров
schedule
30.11.2023
Как узнать, кому принадлежит ReaderWriterLockSlim?
Я пишу приложение, которое широко использует многопоточность. Некоторые потоки совместно используют наблюдаемую коллекцию с помощью ReaderWriterLockSlim.
Время от времени у меня возникает тупик, и мне нужно знать, какой поток удерживает блокировку...
1334 просмотров
schedule
24.05.2024
Как я могу отладить этот тупик при выпуске AVAudioPlayer?
В моем приложении для iPhone у меня есть экземпляр AVAudioPlayer, который я выпускаю (чтобы затем я мог инициализировать другой экземпляр с другим URL-адресом вместо него). Обычно это работает нормально, но иногда я получаю тупик в основном потоке:...
1597 просмотров
schedule
21.05.2024
Как System.out.format может предотвратить взаимоблокировку?
Я обнаружил, что включение вызова System.out.format в классический Учебное пособие по взаимоблокировке Java предотвратит взаимоблокировку, и я не могу понять, почему.
Приведенный ниже код такой же, как и в учебнике, с добавлением main из...
396 просмотров
schedule
02.06.2024