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

108
присвоение ссылки является атомарным, так зачем нужен Interlocked.Exchange (ref Object, Object)?

В моей многопоточной веб-службе asmx у меня было поле класса _allData моего собственного типа SystemData, которое состоит из нескольких List<T>и Dictionary<T>помечено как volatile. Системные данные ( _allData) обновляются время от времени, и я делаю это, создавая другой вызываемый...

107
Как масштабировать потоки в соответствии с ядрами процессора?

Я хочу решить математическую задачу с несколькими потоками в Java. мою математическую задачу можно разделить на рабочие единицы, которые я хочу решить в несколько потоков. Я хочу, чтобы над ним работало не фиксированное количество потоков, а количество потоков, соответствующее количеству ядер ЦП....

106
Каковы основные применения yield () и чем он отличается от join () и interrupt ()?

Я немного смущен использованием yield()метода в Java, особенно в приведенном ниже примере кода. Я также читал, что yield () «используется для предотвращения выполнения потока». Мои вопросы: Я считаю, что приведенный ниже код дает одинаковый результат как при его использовании, так yield()и когда он...

105
Как я могу распространять исключения между потоками?

У нас есть функция, которую вызывает один поток (мы называем это основным потоком). В теле функции мы создаем несколько рабочих потоков для выполнения интенсивной работы с ЦП, ожидаем завершения всех потоков, а затем возвращаем результат в основной поток. В результате вызывающий может наивно...

105
Как поддерживать работу консольного приложения .NET?

Рассмотрим консольное приложение, которое запускает некоторые службы в отдельном потоке. Все, что ему нужно сделать, это дождаться, пока пользователь нажмет Ctrl + C, чтобы выключить его. Что из следующего является лучшим способом сделать это? static ManualResetEvent _quitEvent = new...

104
Нужны ли мьютексы в javascript?

Я видел эту ссылку: Реализация взаимного исключения в JavaScript . С другой стороны, я читал, что в javascript нет потоков, но что именно это означает? Когда происходят события, где в коде они могут прерываться? А если в JS нет потоков, нужно ли использовать в JS мьютексы или нет? В частности, меня...

104
Является ли Java Regex Thread Safe?

У меня есть функция, которая использует Pattern#compileи Matcherдля поиска шаблона в списке строк. Эта функция используется в нескольких потоках. Каждый поток будет иметь уникальный шаблон, передаваемый в Pattern#compileпри создании потока. Количество потоков и шаблонов является динамическим, что...

104
Как отслеживать дочерний процесс с помощью strace?

Раньше я straceвкратце привязывался к процессу. В процессе создано 90 потоков. Когда я нашел проблемный поток, мне пришлось утомительно искать родительский поток, затем дедушку и дедушку, и так далее, вплоть до корневого процесса. Есть ли уловка или инструмент, чтобы быстро выяснить, какой поток...

103
STAThread и многопоточность

Из статьи MSDN о STAThread: Указывает, что модель потоков COM для приложения является однопоточным подразделением (STA). (Для справки, это вся статья .) Однопоточная квартира ... Ладно, это перебило меня. Кроме того, я где-то читал, что если ваше приложение не использует COM-взаимодействие, этот...

102
Почему переменные Java ThreadLocal должны быть статическими

Я читал здесь JavaDoc для Threadlocal https://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ThreadLocal.html и говорится: «Экземпляры ThreadLocal обычно представляют собой частные статические поля в классах, которые хотят связать состояние с потоком (например, ID пользователя или ID...

102
Разница между состояниями WAIT и BLOCKED потока

В чем разница между состоянием потока WAIT и состоянием потока ЗАБЛОКИРОВАНО? Документация Thread.State : Заблокирован. В этом состоянии находится поток, который заблокирован в ожидании блокировки монитора. Ожидание Поток, который бесконечно ожидает выполнения другим потоком определенного...

102
Создание потоков - Task.Factory.StartNew vs new Thread ()

Я только изучаю новые библиотеки Threading и Parallel в .Net 4 Раньше я бы создал новый поток, например, так (в качестве примера): DataInThread = new Thread(new ThreadStart(ThreadProcedure)); DataInThread.IsBackground = true; DataInThread.Start(); Теперь я могу: Task t = Task.Factory.StartNew(()...

100
Как заставить ThreadPoolExecutor увеличивать потоки до максимума перед постановкой в ​​очередь?

Некоторое время я был разочарован поведением по умолчанию, ThreadPoolExecutorкоторое поддерживает ExecutorServiceпулы потоков, которые используют многие из нас. Цитата из Javadocs: Если количество запущенных потоков больше corePoolSize, но меньше maximumPoolSize, новый поток будет создан только в...

100
Как анализировать дамп потока Java?

Я пытаюсь больше узнать о Java, особенно об управлении памятью и потоках. По этой причине я недавно заинтересовался дампами потоков. Вот несколько строк, взятых из веб-приложения, использующего VisualVM, встроенный инструмент для java: "Finalizer" daemon prio=8 tid=0x02b3d000 nid=0x898 in...