Pytania otagowane jako executorservice

ExecutorService to obiekt Java zawierający zarządzaną pulę wątków i umożliwiający planowanie przesłanych zadań dla tych wątków. Strategie planowania różnią się w wielu dostępnych implementacjach.

25
Jak czekać na zakończenie wszystkich wątków za pomocą ExecutorService?
Muszę wykonać pewną liczbę zadań 4 na raz, mniej więcej tak: ExecutorService taskExecutor = Executors.newFixedThreadPool(4); while(...) { taskExecutor.execute(new MyTask()); } //...wait for completion somehow Jak mogę otrzymać powiadomienie, gdy wszystkie zostaną ukończone? Na razie nie mogę wymyślić nic lepszego niż ustawienie globalnego licznika zadań i zmniejszenie go na końcu każdego …

6
Timer Java vs ExecutorService?
Mam kod, za pomocą którego planuję zadanie java.util.Timer. Rozejrzałem się i zobaczyłem, że ExecutorServicemogę zrobić to samo. To pytanie tutaj, czy używałeś Timeri ExecutorServiceplanowałeś zadania, jaka jest korzyść z jednego korzystania z drugiego? Chciałem również sprawdzić, czy ktoś skorzystał z Timerklasy i napotkał problemy, które ExecutorServicedla nich rozwiązały.

17
Nazewnictwo wątków i pul wątków w ExecutorService
Załóżmy, że mam aplikację, która korzysta z Executorframeworka jako takiego Executors.newSingleThreadExecutor().submit(new Runnable(){ @Override public void run(){ // do stuff } } Kiedy uruchomić tę aplikację w debugger, wątek jest tworzony z poniższej (domyślnie) imię: Thread[pool-1-thread-1]. Jak widać, nie jest to szczególnie przydatne i, o ile mogę stwierdzić, Executorframework nie zapewnia …

12
Obsługa wyjątków od zadań Java ExecutorService
Próbuję użyć ThreadPoolExecutorklasy Javy do uruchamiania dużej liczby ciężkich zadań z ustaloną liczbą wątków. Każde z zadań ma wiele miejsc, w których może się nie powieść z powodu wyjątków. Podklasowałem ThreadPoolExecutori przesłoniłem afterExecutemetodę, która ma zapewnić nieprzechwycone wyjątki napotkane podczas uruchamiania zadania. Nie mogę jednak sprawić, by działało. Na przykład: …

14
ExecutorService, jak czekać na zakończenie wszystkich zadań
Jaki jest najprostszy sposób oczekiwania na ExecutorServicezakończenie wszystkich zadań ? Moje zadanie jest głównie obliczeniowe, więc chcę po prostu uruchomić dużą liczbę zadań - po jednym na każdym rdzeniu. W tej chwili moja konfiguracja wygląda następująco: ExecutorService es = Executors.newFixedThreadPool(2); for (DataTable singleTable : uniquePhrases) { es.execute(new ComputeDTask(singleTable)); } try{ …

7
Wybierz pomiędzy przesłaniem ExecutorService a executorem ExecutorService
Jak wybrać pomiędzy przesłaniem lub wykonaniem przez ExecutorService , jeśli zwracana wartość nie jest moim przedmiotem? Jeśli przetestuję oba, nie zauważyłem żadnych różnic między nimi oprócz zwróconej wartości. ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.execute(new Task()); ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.submit(new Task());


6
Jak uzyskać identyfikator wątku z puli wątków?
Mam stałą pulę wątków, do której przesyłam zadania (ograniczoną do 5 wątków). Jak mogę się dowiedzieć, który z tych 5 wątków wykonuje moje zadanie (na przykład „wątek nr 3 z 5 wykonuje to zadanie”)? ExecutorService taskExecutor = Executors.newFixedThreadPool(5); //in infinite loop: taskExecutor.execute(new MyTask()); .... private class MyTask implements Runnable { …

13
Nie można utworzyć buforowanej puli wątków z ograniczeniem rozmiaru?
Wydaje się, że niemożliwe jest utworzenie buforowanej puli wątków z ograniczeniem liczby wątków, które może ona utworzyć. Oto jak static Executors.newCachedThreadPool jest zaimplementowane w standardowej bibliotece Java: public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); } Tak więc, używając tego szablonu do utworzenia puli wątków …

3
FixedThreadPool vs CachedThreadPool: mniejsze zło
Mam program, który generuje wątki (~ 5-150), które wykonują kilka zadań. Początkowo użyłem a, FixedThreadPoolponieważ to podobne pytanie sugerowało, że lepiej nadają się do dłuższych zadań, a przy mojej bardzo ograniczonej wiedzy na temat wielowątkowości, uznałem średni czas życia wątków (kilka minut) za „ długi czas ”. Jednak ostatnio dodałem …

9
ExecutorService, która przerywa zadania po przekroczeniu limitu czasu
Szukam implementacji ExecutorService, która może być dostarczona z limitem czasu. Zadania przesłane do ExecutorService są przerywane, jeśli ich uruchomienie trwa dłużej niż limit czasu. Wdrożenie takiej bestii nie jest trudnym zadaniem, ale zastanawiam się, czy ktoś wie o istniejącej implementacji. Oto, co wymyśliłem na podstawie części dyskusji poniżej. Jakieś uwagi? …

7
Java: ExecutorService, który blokuje przesyłanie po określonym rozmiarze kolejki
Próbuję zakodować rozwiązanie, w którym pojedynczy wątek wytwarza zadania intensywnie korzystające z operacji we / wy, które można wykonywać równolegle. Każde zadanie ma znaczące dane w pamięci. Dlatego chcę mieć możliwość ograniczenia liczby zadań oczekujących w danej chwili. Jeśli utworzę ThreadPoolExecutor w ten sposób: ThreadPoolExecutor executor = new ThreadPoolExecutor(numWorkerThreads, numWorkerThreads, …

5
Powód wywołania shutdown () w ExecutorService
Czytałam o tym trochę w ciągu ostatnich kilku godzin, a ja po prostu nie widzę żadnego powodu ( ważny powód), aby wywołać shutdown()na ExecutorService, chyba że mamy humongous aplikację, która przechowuje, dziesiątki i dziesiątki różnych usług executorów, które nie są wykorzystywane do długo. Jedyną rzeczą (z tego, co wiem) powoduje …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.