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

146
Многопоточность: какой смысл в большем количестве потоков, чем ядер?

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

145
Являются ли несинхронизированные статические методы потокобезопасными, если они не изменяют статические переменные класса?

Мне было интересно, если у вас есть статический метод, который не синхронизируется, но не изменяет статические переменные, это потокобезопасно? А что, если метод создает локальные переменные внутри него? Например, является ли следующий код потокобезопасным? public static String[] makeStringArray(...

145
Должен ли оператор возврата находиться внутри или вне блокировки?

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

144
«Java DateFormat не является потокобезопасным», к чему это приводит?

Все предупреждают, что Java DateFormat не является потокобезопасным, и я теоретически понимаю эту концепцию. Но я не могу представить себе, с какими реальными проблемами мы можем столкнуться из-за этого. Скажем, у меня есть поле DateFormat в классе, и оно используется в разных методах этого класса...

143
Безопасно ли получать значения из java.util.HashMap из нескольких потоков (без изменений)?

Есть случай, когда карта будет построена, и после инициализации она больше никогда не будет изменена. Однако к нему можно будет получить доступ (только с помощью get (key)) из нескольких потоков. Насколько безопасно использовать java.util.HashMapтакой способ? (В настоящее время я с удовольствием...

143
std :: lock_guard или std :: scoped_lock?

C ++ 17 ввел новый класс блокировки под названием std::scoped_lock. Судя по документации, он похож на уже существующий std::lock_guardкласс. Какая разница и когда я должен его...

143
Parallel.ForEach () и foreach (IEnumerable <T> .AsParallel ())

Эрг, я пытаюсь найти эти два метода в BCL, используя Reflector, но не могу их найти. В чем разница между этими двумя фрагментами? A: IEnumerable<string> items = ... Parallel.ForEach(items, item => { ... }); B: IEnumerable<string> items = ... foreach (var item in items.AsParallel()) {...

142
Хватая Node JS альтернативу многопоточности

Если я правильно понимаю, Node JS не блокирует ... поэтому вместо ожидания ответа от базы данных или другого процесса он перешел к чему-то другому и проверит позже. Также он однопоточный. Значит, все это означает, что данный процесс Node JS может полностью и эффективно использовать одно ядро ​​ЦП,...

141
В чем различия между многопоточными и многопроцессорными модулями?

Я учусь , как использовать threadingи те multiprocessingмодули в Python для выполнения определенных операций параллельно и ускорить свой код. Я нахожу это трудным (возможно, потому что у меня нет никакого теоретического фона об этом), чтобы понять, в чем разница между threading.Thread()объектом и...

141
Как сформулировать разницу между асинхронным и параллельным программированием?

Многие платформы продвигают асинхронность и параллелизм как средства повышения быстродействия. Я понимаю разницу в целом, но часто мне трудно сформулировать это в собственном уме, а также для других. Я рабочий программист и довольно часто использую асинхронные функции и обратные вызовы....

140
Безопасна ли! = Проверка потоков?

Я знаю, что составные операции, например i++, не являются потокобезопасными, поскольку включают в себя несколько операций. Но является ли проверка ссылки на самой себе поточно-ориентированной операцией? a != a //is this thread-safe Я пытался запрограммировать это и использовать несколько потоков,...

139
Как получить ожидаемую тему. Сон?

Я пишу сетевое приложение, основанное на парадигме ожидания / сна. Иногда возникают ошибки подключения, и по моему опыту стоит подождать некоторое время, а затем повторить попытку. Проблема заключается в том, что если я использую Thread.Sleep или другую подобную операцию блокировки в await / async,...

137
Тема против ThreadPool

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

137
Как завершить поток в C ++ 11?

Мне не нужно правильно завершать поток или заставлять его отвечать на команду «завершить». Я заинтересован в принудительном завершении потока с использованием чистого C ++...

137
Почему CancellationToken отличается от CancellationTokenSource?

Я ищу объяснение того, почему .NET CancellationTokenstruct была введена в дополнение к CancellationTokenSourceклассу. Я понимаю, как следует использовать API, но хочу также понять, почему он так устроен. Т.е. почему у нас: var cts = new CancellationTokenSource();...

136
Являются ли Java статические инициализаторы потокобезопасными?

Я использую статический блок кода для инициализации некоторых контроллеров в реестре, который у меня есть. Поэтому мой вопрос: могу ли я гарантировать, что этот статический блок кода будет вызываться только один раз при первой загрузке класса? Я понимаю, что не могу гарантировать, когда будет...

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

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