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

Многопоточность - это способность компьютера или программы выполнять работу одновременно или асинхронно, используя несколько одновременных потоков выполнения (обычно называемых потоками).

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

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

5
Параллельный HashSet <T> в .NET Framework?
У меня есть следующий класс. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); } Мне нужно изменить поле «Данные» из разных потоков, поэтому я хотел бы высказать некоторые мнения о моей текущей поточно-безопасной реализации. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); public void Add(string Val){ lock(Data) Data.Add(Val); } public …

11
Ожидание в списке будущего
У меня есть метод, который возвращает Listфьючерсы List&lt;Future&lt;O&gt;&gt; futures = getFutures(); Теперь я хочу дождаться, пока либо все фьючерсы не будут успешно обработаны, либо какая-либо из задач, вывод которых возвращается будущим, выдает исключение. Даже если одна задача выдает исключение, нет смысла ждать другого будущего. Простым подходом было бы wait() { …

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

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

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

6
Когда использовать enumerateObjectsUsingBlock или для
Помимо очевидных отличий: Используйте, enumerateObjectsUsingBlockкогда вам нужен и индекс, и объект Не используйте, enumerateObjectsUsingBlockкогда вам нужно изменить локальные переменные (я ошибся, см. Ответ bbum) Является ли в enumerateObjectsUsingBlockцелом считается лучше или хуже , если for (id obj in myArray)бы также работать? Каковы преимущества / недостатки (например, более или менее эффективны)?

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

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

17
Многопоточность: какой смысл в большем количестве потоков, чем ядер?
Я думал, что смысл многоядерного компьютера в том, что он может одновременно запускать несколько потоков. В таком случае, если у вас есть четырехъядерный компьютер, какой смысл иметь более 4 потоков, работающих одновременно? Разве они не будут просто красть время (ресурсы ЦП) друг у друга?

5
Являются ли несинхронизированные статические методы потокобезопасными, если они не изменяют статические переменные класса?
Мне было интересно, если у вас есть статический метод, который не синхронизируется, но не изменяет статические переменные, это потокобезопасно? А что, если метод создает локальные переменные внутри него? Например, является ли следующий код потокобезопасным? public static String[] makeStringArray( String a, String b ){ return new String[]{ a, b }; } …

6
Безопасна ли реализация Мейерсом потока шаблона Singleton?
SingletonБезопасна ли следующая реализация с использованием отложенной инициализации потока (Meyers 'Singleton)? static Singleton&amp; instance() { static Singleton s; return s; } Если нет, то почему и как сделать это потокобезопасным?

9
Должен ли оператор возврата находиться внутри или вне блокировки?
Я только что понял, что в каком-то месте моего кода оператор return находится внутри замка, а иногда и снаружи. Какой из них лучше? 1) void example() { lock (mutex) { //... } return myData; } 2) void example() { lock (mutex) { //... return myData; } } Какой мне использовать?
145 c#  .net  multithreading  mutex 

11
«Java DateFormat не является потокобезопасным», к чему это приводит?
Все предупреждают, что Java DateFormat не является потокобезопасным, и я теоретически понимаю эту концепцию. Но я не могу представить себе, с какими реальными проблемами мы можем столкнуться из-за этого. Скажем, у меня есть поле DateFormat в классе, и оно используется в разных методах этого класса (форматирование дат) в многопоточной среде. …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.