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

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

25
Как ждать завершения всех потоков, используя ExecutorService?
Мне нужно выполнить некоторое количество задач 4 за один раз, что-то вроде этого: ExecutorService taskExecutor = Executors.newFixedThreadPool(4); while(...) { taskExecutor.execute(new MyTask()); } //...wait for completion somehow Как я могу получить уведомление, когда все они будут завершены? Пока я не могу думать о чем-то лучше, чем установить какой-либо глобальный счетчик задач …

6
Таймер Java против ExecutorService?
У меня есть код, где я планирую задачу, используя java.util.Timer. Я огляделся и увидел, что ExecutorServiceможно сделать то же самое. Итак, этот вопрос здесь, вы использовали Timerи ExecutorServiceдля планирования задач, в чем преимущество одного использования над другим? Также хотел проверить, использовал ли кто-нибудь Timerкласс и столкнулся с какими-либо проблемами, которые …

17
Именование потоков и пулов потоков ExecutorService
Допустим, у меня есть приложение, которое использует Executorфреймворк как таковой Executors.newSingleThreadExecutor().submit(new Runnable(){ @Override public void run(){ // do stuff } } Когда я запускаю это приложение в отладчик, поток создается с именем следующей ( по умолчанию): Thread[pool-1-thread-1]. Как видите, это не очень полезно, и, насколько я могу судить, Executorинфраструктура не …

12
Обработка исключений из задач Java ExecutorService
Я пытаюсь использовать ThreadPoolExecutorкласс Java для запуска большого количества тяжеловесных задач с фиксированным количеством потоков. У каждой из задач есть много мест, в которых она может потерпеть неудачу из-за исключений. Я разделил на подклассы ThreadPoolExecutorи переопределил afterExecuteметод, который должен обеспечивать любые неперехваченные исключения, возникающие при выполнении задачи. Тем не менее, …

14
ExecutorService, как ждать завершения всех задач
Как проще всего дождаться ExecutorServiceзавершения всех заданий ? Моя задача в основном вычислительная, поэтому я просто хочу выполнить большое количество заданий - по одному на каждое ядро. Прямо сейчас моя установка выглядит так: ExecutorService es = Executors.newFixedThreadPool(2); for (DataTable singleTable : uniquePhrases) { es.execute(new ComputeDTask(singleTable)); } try{ es.wait(); } catch …

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


6
Как получить идентификатор потока из пула потоков?
У меня есть фиксированный пул потоков, в который я отправляю задачи (ограничено 5 потоками). Как я могу узнать, какой из этих 5 потоков выполняет мою задачу (что-то вроде «поток № 3 из 5 выполняет эту задачу»)? ExecutorService taskExecutor = Executors.newFixedThreadPool(5); //in infinite loop: taskExecutor.execute(new MyTask()); .... private class MyTask implements …

13
Невозможно создать пул кэшированных потоков с ограничением размера?
Кажется, невозможно создать пул кэшированных потоков с ограничением количества потоков, которые он может создать. Вот как статический Executors.newCachedThreadPool реализован в стандартной библиотеке Java: public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); } Итак, используя этот шаблон для создания пула кэшированных потоков фиксированного размера: new ThreadPoolExecutor(0, …

3
FixedThreadPool против CachedThreadPool: меньшее из двух зол
У меня есть программа, которая порождает потоки (~ 5-150), которые выполняют кучу задач. Первоначально я использовал a, FixedThreadPoolпотому что этот аналогичный вопрос предполагал, что они лучше подходят для более длительных задач, и с моими очень ограниченными знаниями о многопоточности я считал средний срок службы потоков (несколько минут) « долгоживущим ». …

9
ExecutorService, который прерывает задачи после тайм-аута
Я ищу реализацию ExecutorService, которая может быть предоставлена ​​с таймаутом. Задачи, которые отправляются в ExecutorService, прерываются, если для их выполнения требуется больше времени, чем время ожидания. Реализовать такого зверя - не такая уж сложная задача, но мне интересно, знает ли кто-нибудь о существующей реализации. Вот что я придумал, основываясь на …

7
Java: ExecutorService, который блокируется при отправке после определенного размера очереди
Я пытаюсь закодировать решение, в котором один поток создает задачи с интенсивным вводом-выводом, которые могут выполняться параллельно. Каждая задача имеет важные данные в памяти. Поэтому я хочу иметь возможность ограничивать количество задач, ожидающих выполнения в данный момент. Если я создам ThreadPoolExecutor следующим образом: ThreadPoolExecutor executor = new ThreadPoolExecutor(numWorkerThreads, numWorkerThreads, 0L, …

5
Причина вызова shutdown () на ExecutorService
Я читал об этом совсем немного в последние пару часов, и я просто не вижу никаких оснований ( действительна причина) для вызова shutdown()на ExecutorService, если мы не будем иметь Humongous приложение , которое хранит, десятки и десятки различных услуг ИСПОЛНИТЕЛЬ, которые не используются для долго. Единственное (из того, что я …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.