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

почему мой многопоточный скрипт Python не работает при вызове через cgi?
У меня есть следующий многопоточный скрипт Python: #!/usr/bin/python from threading import Thread, Event def doSum(num): abc = 1 abc = abc + num if __name__ == '__main__': print "Content-Type: text/html\r\n\r\n" p1 =...
412 просмотров
schedule 13.08.2022

Каков наиболее эффективный способ управления отслеживающими официантами с блокировками на основе фьютексов?
Я использовал подход с подсчетом ожидания к блокировкам на основе фьютекса: рядом с фьютексом int , имея второй int , который является счетчиком ожидания, который официанты, борющиеся за блокировку, атомарно увеличивают перед выполнением операции...
437 просмотров
schedule 18.04.2024

boost — timed_wait не ждет
Я запускаю следующий код на ОС Linux + процессор ARM + boost 1.51. Но код не работает должным образом, и вызов timed_wait() возвращается немедленно. #include <boost/thread/condition.hpp> #include <boost/thread/xtime.hpp> #include...
1122 просмотров
schedule 04.10.2022

Java периодически зависает на фьютексе и очень низком выходе ввода-вывода
В настоящее время мое приложение периодически блокируется в IO, и вывод очень низкий. Я использую некоторую команду для отслеживания процесса. Используя jstack , я обнаружил, что приложение зависает в FileOutputStream.writeBytes. Я обнаружил...
15056 просмотров
schedule 31.03.2023

Использование libcurl в многопоточной среде приводит к ОЧЕНЬ низкой производительности, связанной с поиском DNS.
Вы должны простить довольно большой блок кода, но я считаю, что это почти минимальное воспроизведение моей проблемы. Проблема не только в example.com , но и на многих других сайтах. Если у меня есть 4 потока, активно выполняющих сетевые запросы,...
1721 просмотров

Как узнать, что вызывает сбой объекта futex?
Пытаюсь синхронизировать 5 процессов, они должны быть созданы от одного отца. Я попытался вставить 5 идентификаторов ожидания, чтобы дождаться завершения дочернего процесса, но код никогда не достигает D4 и D5. #include <unistd.h>...
1978 просмотров
schedule 09.07.2022

Достигает ли пара ожидания/пробуждения фьютекса семантики получения/освобождения?
Учитывая этот псевдокод, где глобально атомарное целое a инициализировано до 0: Тема 1: // ... some code here (X) ... a.store(1, relaxed); futex_wake(&a); Тема 2: if (futex_wait(&a, 1) == woken_up) { assert(a.load(relaxed)...
323 просмотров

Самый быстрый способ разбудить поток пула потоков
Я написал пул потоков с таким количеством потоков, сколько у меня есть (запасные ядра), чтобы избежать переключения контекста. Всякий раз, когда необходимо выполнить новую задачу, эта задача добавляется в незаблокированный кольцевой буфер для...
348 просмотров
schedule 05.06.2023

Использование std::atomic с системным вызовом futex
В C++20 мы получили возможность засыпать атомарные переменные, ожидая изменения их значения. Мы делаем это с помощью метода std::atomic::wait . К сожалению, в то время как wait стандартизирован, wait_for и wait_until нет. Это означает,...
214 просмотров
schedule 15.12.2022