«executorservice» etiketlenmiş sorular

ExecutorService, yönetilen iş parçacığı havuzunu içeren ve bu iş parçacıkları için gönderilen görevleri planlayabilen bir Java nesnesidir. Zamanlama stratejileri, mevcut birden çok uygulamada farklılık gösterir.

25
ExecutorService kullanarak tüm evrelerin bitmesini nasıl bekleyebilirim?
Ben böyle bir şey, bir seferde görevler 4 bir miktar yürütmek gerekiyor: ExecutorService taskExecutor = Executors.newFixedThreadPool(4); while(...) { taskExecutor.execute(new MyTask()); } //...wait for completion somehow Hepsi tamamlandığında nasıl bildirim alabilirim? Şimdilik, bazı küresel görev sayacı ayarlamak ve her görevin sonunda azaltmak daha iyi bir şey düşünemiyorum, daha sonra bu sayaç …

6
Java Timer vs ExecutorService?
Ben kullanarak bir görev zamanlama kodu var java.util.Timer. Etrafa bakıyordum ve ExecutorServiceaynı şeyi yapabileceğini gördüm . Buradaki soru, kullandınız mı Timerve ExecutorServicegörevleri zamanlamak için, birinin diğerine göre faydası nedir? Ayrıca, herhangi birinin Timersınıfı kullanıp kullanmadığını ve ExecutorServiceonlar için çözülen herhangi bir sorunla karşılaşıp karşılaşmadığını kontrol etmek istedim .

17
ExecutorService iş parçacıklarının ve iş parçacıklarının adlandırılması
Diyelim ki bu Executorçerçeveyi kullanan bir uygulamam var Executors.newSingleThreadExecutor().submit(new Runnable(){ @Override public void run(){ // do stuff } } Bu uygulamayı hata ayıklayıcıda çalıştırdığımda, aşağıdaki (varsayılan) adla bir iş parçacığı oluşturulur: Thread[pool-1-thread-1] . Gördüğünüz gibi, bu çok kullanışlı değil ve söyleyebildiğim kadarıyla, Executorçerçeve oluşturulan iş parçacıklarını veya iş parçacığı havuzlarını …

12
Java ExecutorService görevlerinden özel durumları işleme
İş ThreadPoolExecutorparçacıkları sabit sayıda ağır ağırlık görevleri çok sayıda çalıştırmak için Java'nın sınıfını kullanmaya çalışıyorum . Görevlerin her biri, istisnalar nedeniyle başarısız olabileceği birçok yere sahiptir. Alt sınıfta oldum ThreadPoolExecutorve afterExecutebir görevi çalıştırırken karşılaşılan herhangi bir yakalanmayan istisna sağlamak için gereken yöntemi geçersiz kıldım. Ancak, çalışmasını sağlayamıyorum. Örneğin: public class …

14
ExecutorService, tüm görevlerin bitmesini beklemek
Tüm görevlerin ExecutorServicebitmesini beklemenin en basit yolu nedir ? Görevim öncelikle hesaplamalı, bu yüzden sadece çok sayıda iş yapmak istiyorum - her çekirdekte bir tane. Şu anda kurulumum şöyle görünüyor: ExecutorService es = Executors.newFixedThreadPool(2); for (DataTable singleTable : uniquePhrases) { es.execute(new ComputeDTask(singleTable)); } try{ es.wait(); } catch (InterruptedException e){ e.printStackTrace(); …

7
ExecutorService gönderimi ve ExecutorService yürütmesi arasında seçim yapın
Nasıl arasında bir seçim yapmalı ExecutorService en göndermek veya yürütme döndürülen değer benim endişe değilse? Her ikisini de test edersem, döndürülen değer dışında ikisi arasında herhangi bir fark görmedim. ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.execute(new Task()); ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.submit(new Task());


6
Bir iş parçacığı havuzundan iş parçacığı kimliği nasıl alınır?
Görevleri gönderdiğim sabit bir iş parçacığı havuzum var ( 5 iş parçacığı ile sınırlı ). Nasıl onlardan biri hangi öğrenebilirsiniz 5 parçacığı benim görev yürütür (gibi bir şey "nin 3. iplik 5 bu görevi yapıyor")? ExecutorService taskExecutor = Executors.newFixedThreadPool(5); //in infinite loop: taskExecutor.execute(new MyTask()); .... private class MyTask implements Runnable …

13
Boyut sınırı olan bir önbelleğe alınmış iş parçacığı havuzu yapmak imkansız mı?
Önbelleğe alınmış bir iş parçacığı havuzunun oluşturabileceği iş parçacığı sayısı sınırıyla yapmak imkansız gibi görünüyor. Statik Executors.newCachedThreadPool, standart Java kitaplığında şu şekilde uygulanır: public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); } Dolayısıyla, bu şablonu kullanarak sabit boyutlu bir önbelleğe alınmış iş parçacığı havuzu oluşturmaya …

3
FixedThreadPool vs CachedThreadPool: iki kötülükten daha azı
Bir dizi görevi yerine getiren iş parçacıkları (~ 5-150) oluşturan bir programım var. Başlangıçta a kullandım FixedThreadPoolçünkü bu benzer soru onların daha uzun ömürlü görevler için daha uygun olduğunu gösteriyordu ve çok iş parçacığına ilişkin çok sınırlı bilgimle, iş parçacığının ortalama ömrünü (birkaç dakika) " uzun ömürlü " olarak değerlendirdim. …

9
Bir zaman aşımından sonra görevleri kesintiye uğratan ExecutorService
Zaman aşımı ile sağlanabilecek bir ExecutorService uygulaması arıyorum . ExecutorService'e gönderilen görevler, çalışma zaman aşımından daha uzun sürerse kesilir. Böyle bir canavarı uygulamak o kadar zor bir iş değil, ama var olan bir uygulamayı bilen var mı merak ediyorum. İşte aşağıdaki tartışmalardan bazılarına dayanarak ortaya çıkardığım şey. Herhangi bir yorum? …

7
Java: Belirli bir kuyruk boyutundan sonra gönderimi engelleyen ExecutorService
Tek bir iş parçacığının paralel olarak gerçekleştirilebilen G / Ç yoğun görevler ürettiği bir çözümü kodlamaya çalışıyorum. Her görevin önemli bellek içi verileri vardır. Bu yüzden, bir anda bekleyen görevlerin sayısını sınırlayabilmek istiyorum. ThreadPoolExecutor'ı şu şekilde oluşturursam: ThreadPoolExecutor executor = new ThreadPoolExecutor(numWorkerThreads, numWorkerThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(maxQueue)); Ardından, sıra dolduğunda …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.