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

208
Случаются ли ложные пробуждения в Java на самом деле?

Рассматривая различные вопросы, связанные с блокировкой, и (почти) всегда находя термин «цикл из-за ложных пробуждений» 1 Интересно, кто-нибудь испытывал такое пробуждение (например, при условии достойной аппаратной / программной среды)? Я знаю, что термин «ложный» означает отсутствие очевидной...

200
ExecutorService, как ждать завершения всех задач

Как проще всего дождаться ExecutorServiceзавершения всех заданий ? Моя задача в основном вычислительная, поэтому я просто хочу выполнить большое количество заданий - по одному на каждое ядро. Прямо сейчас моя установка выглядит так: ExecutorService es = Executors.newFixedThreadPool(2); for...

199
Java: Как проверить методы, которые вызывают System.exit ()?

У меня есть несколько методов, которые должны вызывать System.exit()определенные входы. К сожалению, тестирование этих случаев приводит к прекращению работы JUnit! Помещение вызовов методов в новый System.exit()поток, похоже, не помогает, поскольку завершает JVM, а не только текущий поток....

198
Какая польза от join () в потоке Python?

Я изучал потоки Python и наткнулся join() . Автор сказал, что если поток находится в режиме демона, то мне нужно использовать его, join()чтобы поток мог завершить себя до завершения основного потока. но я также видел его использование, t.join()хотя tне былоdaemon пример кода это import threading...

194
Выберите между отправкой ExecutorService и выполнением ExecutorService

Как я должен выбрать между ExecutorService - х представить или выполнить , если возвращаемое значение не моя забота? Если я тестирую оба, я не вижу никаких различий между ними, кроме возвращаемого значения. ExecutorService threadExecutor = Executors.newSingleThreadExecutor();...

194
Разница между CompletableFuture, Future и RxJava, наблюдаемой

Я хотел бы знать разницу между CompletableFuture, Futureи Observable RxJava. Я знаю, что все они асинхронные, но Future.get() блокирует поток CompletableFuture дает методы обратного вызова RxJava Observable--- аналогично CompletableFutureс другими преимуществами (не уверен) Например: если клиенту...

192
С какой наиболее частой проблемой параллелизма вы столкнулись в Java? [закрыто]

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

191
Java синхронизирует метод блокировки объекта или метода?

Если у меня есть 2 синхронизированных метода в одном и том же классе, но каждый имеет доступ к разным переменным, могут ли 2 потока получить доступ к этим двум методам одновременно? Происходит ли блокировка объекта или он становится таким же специфичным, как переменные внутри синхронизированного...

187
Рекурсивная блокировка (мьютекс) против нерекурсивной блокировки (мьютекс)

POSIX позволяет мьютексам быть рекурсивными. Это означает, что один и тот же поток может заблокировать один и тот же мьютекс дважды и не будет блокироваться. Конечно, он также должен разблокировать его дважды, иначе никакой другой поток не сможет получить мьютекс. Не все системы, поддерживающие...

184
Как CountDownLatch используется в многопоточности Java?

Может ли кто-нибудь помочь мне понять, что такое Java CountDownLatchи когда его использовать? У меня нет четкого представления о том, как работает эта программа. Как я понимаю, все три потока запускаются одновременно, и каждый поток вызовет CountDownLatch через 3000 мс. Так что обратный отсчет...

183
Синхронизация против блокировки

java.util.concurrentAPI предоставляет класс с именем as Lock, который в основном сериализует элемент управления для доступа к критическому ресурсу. Это дает такой метод, как park()и unpark(). Мы можем делать подобные вещи, если мы можем использовать synchronizedключевое слово wait()и notify()...

180
Почему создание темы считается дорогой?

В руководствах по Java написано, что создание потока стоит дорого. Но почему именно это дорого? Что именно происходит, когда создается поток Java, что делает его создание дорогим? Я принимаю это утверждение как правду, но мне просто интересна механика создания потоков в JVM. Поток жизненного цикла...

180
Как я могу преобразовать этот код foreach в Parallel.ForEach?

Я немного запутался Parallel.ForEach. Что это такое Parallel.ForEachи чем оно конкретно занимается? Пожалуйста, не ссылайтесь ни на одну ссылку MSDN. Вот простой пример: string[] lines = File.ReadAllLines(txtProxyListPath.Text); List<string> list_lines = new List<string>(lines); foreach...

180
Как синхронизированные статические методы работают в Java и можно ли использовать их для загрузки объектов Hibernate?

Если у меня есть класс util со статическими методами, которые будут вызывать функции Hibernate для выполнения базового доступа к данным. Мне интересно, если создание метода synchronizedявляется правильным подходом для обеспечения безопасности потока. Я хочу это, чтобы предотвратить доступ...

179
Как найти идентификатор потока в Python

У меня есть многопоточная программа Python и служебная функция writeLog(message), которая записывает метку времени, за которой следует сообщение. К сожалению, полученный файл журнала не указывает, какой поток генерирует какое сообщение. Я хотел бы writeLog()иметь возможность добавить что-то к...

179
Автоматизация шаблона кода InvokeRequired

Я стал мучительно осознавать, как часто нужно писать следующий шаблон кода в коде GUI, управляемого событиями, где private void DoGUISwitch() { // cruisin for a bruisin' through exception city object1.Visible = true; object2.Visible = false; } будет выглядеть так: private void DoGUISwitch() { if...

178
В чем разница между параллелизмом, параллелизмом и асинхронными методами?

Параллельность - это выполнение двух задач параллельно в разных потоках. Однако асинхронные методы выполняются параллельно, но в одном потоке. Как это достигается? Кроме того, как насчет параллелизма? Каковы различия между этими 3...

178
Как ждать окончания потока с .NET?

Я никогда раньше не использовал потоки в C #, где мне нужно иметь два потока, а также основной поток пользовательского интерфейса. В основном у меня есть следующее. public void StartTheActions() { //Starting thread 1.... Thread t1 = new Thread(new ThreadStart(action1)); t1.Start(); // Now, I want...