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

135
C ++ 0x не имеет семафоров? Как синхронизировать потоки?

Правда ли, что C ++ 0x придет без семафоров? Уже есть несколько вопросов о переполнении стека относительно использования семафоров. Я использую их (семафоры posix) все время, чтобы позволить потоку ожидать какого-то события в другом потоке: void thread0(...) { doSomething0(); event1.wait(); ... }...

135
Что делает SynchronizationContext?

В книге «Программирование на C #» есть пример кода о SynchronizationContext: SynchronizationContext originalContext = SynchronizationContext.Current; ThreadPool.QueueUserWorkItem(delegate { string text = File.ReadAllText(@"c:\temp\log.txt"); originalContext.Post(delegate { myTextBox.Text = text; },...

135
Asynctask против темы в Android

В пользовательском интерфейсе для выполнения некоторых фоновых работ я использовал отдельную Thread. Но, как предлагают другие, я сейчас использую AsyncTask. В чем главное различие между a Threadи an AsyncTask? В каком сценарии я должен использовать Threadили...

133
Потоки Windows: _beginthread против _beginthreadex против CreateThread C ++

Какой лучший способ начать обсуждение _beginthread, _beginthreadxили CreateThread? Я пытаюсь определить, в чем преимущества / недостатки _beginthread, _beginthreadexи CreateThread. Все эти функции возвращают дескриптор потока для вновь созданного потока, я уже знаю, что CreateThread предоставляет...

133
Асинхронный против многопоточности - есть ли разница?

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

132
Какую реализацию параллельной очереди следует использовать в Java?

Из JavaDocs: ConcurrentLinkedQueue является подходящим выбором , когда много потоков будет общий доступ к общей коллекции. Эта очередь не допускает пустых элементов. ArrayBlockingQueue - это классический «ограниченный буфер», в котором массив фиксированного размера содержит элементы, вставленные...

131
Как запустить код в фоновом потоке на Android?

Я хочу, чтобы какой-то код работал в фоновом режиме постоянно. Я не хочу делать это в сервисе. Возможен ли другой способ? Я попытался вызвать Threadкласс в моем, Activityно мое время Activityостается в фоновом режиме, а затем он останавливается. ThreadКласс также перестает работать. class...

131
Пул потоков в C ++ 11

Актуальные вопросы : О C ++ 11: С ++ 11: пул std :: thread? Будет ли async (launch :: async) в C ++ 11 делать пулы потоков устаревшими, чтобы избежать создания дорогостоящих потоков? О Boost: C ++ boost thread повторное использование потоков boost :: thread и создание их пула! Как получить пул...

131
Что означает thread_local в C ++ 11?

Меня смущает описание thread_localв C ++ 11. Насколько я понимаю, каждый поток имеет уникальную копию локальных переменных в функции. К глобальным / статическим переменным могут получить доступ все потоки (возможно, синхронный доступ с использованием блокировок). И thread_localпеременные видны всем...

131
Когда использовать volatile с многопоточностью?

Если есть два потока, обращающихся к глобальной переменной, то во многих руководствах говорится, что переменная должна быть изменчивой, чтобы компилятор не кэшировал переменную в регистре и, таким образом, не обновлялся правильно. Однако два потока, оба обращающиеся к общей переменной, - это то,...

131
Как получить идентификатор потока из пула потоков?

У меня есть фиксированный пул потоков, в который я отправляю задачи (ограничено 5 потоками). Как я могу узнать, какой из этих 5 потоков выполняет мою задачу (что-то вроде «поток № 3 из 5 выполняет эту задачу»)? ExecutorService taskExecutor = Executors.newFixedThreadPool(5); //in infinite loop:...

129
Как использовать ожидание и уведомление в Java без исключения IllegalMonitorStateException?

У меня есть 2 матрицы, и мне нужно их умножить, а затем распечатать результаты каждой ячейки. Как только одна ячейка будет готова, мне нужно ее распечатать, но, например, мне нужно распечатать ячейку [0] [0] перед ячейкой [2] [0], даже если результат [2] [0] готов первым , Поэтому мне нужно...

129
Android: когда мне следует использовать Handler (), а когда - поток?

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