Запитання з тегом «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класом і натрапив на якісь проблеми, які ExecutorServiceвирішив …

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 (InterruptedException e){ …

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.newCchedThreadPool реалізований у стандартній бібліотеці Java: public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); } Отже, використовуючи цей шаблон, щоб продовжити, щоб створити кешований пул потоків фіксованого розміру: …

3
FixedThreadPool vs CachedThreadPool: менша з двох зол
У мене є програма, яка породжує теми (~ 5-150), які виконують купу завдань. Спочатку я використовував те, FixedThreadPoolтому що подібне запитання припускало, що вони краще підходять для більш тривалих завдань, і з моїх дуже обмежених знань багатопотокової роботи я вважав середню тривалість життя ниток (кілька хвилин) " довго прожили ". …

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

7
Java: ExecutorService, що блокує подання після певного розміру черги
Я намагаюся кодувати рішення, в якому один потік виробляє завдання з інтенсивним введенням / виводом, які можна виконувати паралельно. Кожне завдання має значні дані в пам'яті. Тому я хочу мати можливість обмежити кількість завдань, які очікують на даний момент. Якщо я створюю ThreadPoolExecutor так: ThreadPoolExecutor executor = new ThreadPoolExecutor(numWorkerThreads, numWorkerThreads, …

5
Причина виклику shutdown () на ExecutorService
Я читав про це зовсім небагато в останні пару годин, і я просто не бачу ніяких підстав ( дійсна причина) для виклику shutdown()на ExecutorService, якщо ми не будемо мати Humongous додаток , який зберігає, десятки і десятки різних послуг ВИКОНАВЕЦЬ, які не використовуються для довгий час. Єдине (з того, що …

6
Чи безпечний потік ExecutorService (зокрема ThreadPoolExecutor)?
Чи ExecutorServiceгарантує безпеку різьблення? Я буду надсилати завдання з різних потоків до одного і того ж ThreadPoolExecutor, чи потрібно синхронізувати доступ до виконавця перед взаємодією / надсиланням завдань?

8
Перетворення ExecutorService на демон в Java
Я використовую ExecutoreService в Java 1.6, запущений просто ExecutorService pool = Executors.newFixedThreadPool(THREADS). Коли мій основний потік буде закінчений (разом із усіма завданнями, обробленими пулом потоків), цей пул не дозволить моїй програмі зупинитися, поки я явно не покличу pool.shutdown(); Чи можу я уникнути необхідності викликати це, як-небудь перетворивши управління внутрішнім потоком, …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.