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

158
Почему «while (true)» без «Thread.sleep» вызывает 100% загрузку ЦП в Linux, но не в Windows?

Я создал простую программу в Java: public static void main(String[] args) throws InterruptedException { while (true) ; } Если я запускаю это на машине с Linux, это показывает 100% загрузку процессора, но не заставляет ОС работать медленно. Однако, если я запускаю точно такой же код в Windows, он...

157
Реализация общего тайм-аута C #

Я ищу хорошие идеи для реализации общего способа выполнения одной строки (или анонимного делегата) кода с тайм-аутом. TemperamentalClass tc = new TemperamentalClass(); tc.DoSomething(); // normally runs in 30 sec. Want to error at 1 min Я ищу решение, которое можно элегантно реализовать во многих...

156
Python Threading Строковые Аргументы

У меня проблема с потоками Python и отправкой строки в аргументах. def processLine(line) : print "hello"; return; , dRecieved = connFile.readline(); processThread = threading.Thread(target=processLine, args=(dRecieved)); processThread.start(); Где dRecoted - строка из одной строки, прочитанная...

156
Итерация значений ConcurrentHashMap потокобезопасна?

В javadoc для ConcurrentHashMap есть следующее: Операции извлечения (включая get) обычно не блокируются, поэтому могут перекрываться с операциями обновления (включая put и remove). Извлечения отражают результаты самых последних завершенных операций обновления, проводимых с момента их появления. Для...

153
Что происходит с отдельным потоком при выходе из main ()?

Предположим, я запускаю a, std::threadа затем detach()it, поэтому поток продолжает выполняться, даже если тот, std::threadкоторый когда-то представлял его, выходит из области видимости. Предположим далее, что программа не имеет надежного протокола для присоединения к отсоединенному потоку 1 ,...

153
Может ли num ++ быть атомарным для int num?

В общем случае for int num, num++(или ++num) как операция чтения-изменения-записи не является атомарной . Но я часто вижу, как компиляторы, например GCC , генерируют для него следующий код ( попробуйте здесь ): Так как строка 5, которая соответствует num++одной инструкции, можем ли мы сделать...

153
Разумно ли заменить boost :: thread и boost :: mutex на c ++ 11 эквивалентов?

Мотивация: причина, по которой я рассматриваю это, заключается в том, что мой гениальный руководитель проекта считает, что повышение - это еще одна зависимость, и это ужасно, потому что «вы зависите от этого» (я попытался объяснить качество повышения, а затем через некоторое время сдался :( Меньшая...

152
Ожидание в списке будущего

У меня есть метод, который возвращает Listфьючерсы List<Future<O>> futures = getFutures(); Теперь я хочу дождаться, пока либо все фьючерсы не будут успешно обработаны, либо какая-либо из задач, вывод которых возвращается будущим, выдает исключение. Даже если одна задача выдает...

152
Параллельный HashSet <T> в .NET Framework?

У меня есть следующий класс. class Test{ public HashSet<string> Data = new HashSet<string>(); } Мне нужно изменить поле «Данные» из разных потоков, поэтому я хотел бы высказать некоторые мнения о моей текущей поточно-безопасной реализации. class Test{ public HashSet<string> Data =...

151
Как получить обратную трассировку для всех потоков в GDB?

Есть ли в GDB команда, эквивалентная команде WinDbg "! Process 0 7"? Я хочу извлечь все потоки из файла дампа вместе с их обратными следами в GDB. «Информация о потоках» не выводит следы стека. Итак, есть ли команда, которая...

151
Лучшая практика: AsyncTask во время смены ориентации

AsyncTask Отличная вещь для запуска сложных задач в другом потоке. Но когда происходит изменение ориентации или другое изменение конфигурации во время AsyncTaskработы, ток Activityуничтожается и перезапускается. И когда экземпляр AsyncTaskсвязан с этим действием, он завершается неудачно и вызывает...

151
Попытка прочитать или записать в защищенную память. Это часто указывает на то, что другая память повреждена.

Я надеюсь, что кто-нибудь сможет объяснить мне, что могло вызвать эту ошибку: Попытка прочитать или записать в защищенную память. Это часто указывает на то, что другая память повреждена. Я не могу опубликовать код, потому что эта ошибка, кажется, возникает в любой случайной области приложения....

150
Когда использовать enumerateObjectsUsingBlock или для

Помимо очевидных отличий: Используйте, enumerateObjectsUsingBlockкогда вам нужен и индекс, и объект Не используйте, enumerateObjectsUsingBlockкогда вам нужно изменить локальные переменные (я ошибся, см. Ответ bbum) Является ли в enumerateObjectsUsingBlockцелом считается лучше или хуже , если for...

149
Насколько эффективна блокировка разблокированного мьютекса? Какова стоимость мьютекса?

На низкоуровневом языке (C, C ++ или любой другой): у меня есть выбор между наличием нескольких мьютексов (например, что дает мне pthread или того, что предоставляет нативная системная библиотека) или одного для объекта. Насколько эффективно блокировать мьютекс? Т.е. сколько там ассемблерных...

147
C # Thread Safe быстрый (EST) счетчик

Как получить потокобезопасный счетчик в C # с наилучшей производительностью? Это так просто, как получается: public static long GetNextValue() { long result; lock (LOCK) { result = COUNTER++; } return result; } Но есть ли более быстрые...