2012-08-22 25 views
5

javadoc, Executors.newCachedThreadPool tarafından döndürülen hizmetin konuları yeniden kullandığını söylüyor. Bu nasıl mümkün olabilir? Bir iş parçacığı yalnızca bir kez start numaralı telefonu arayarak başlatılabilir. Peki bunu nasıl uygularlar? Bu hizmetin konuları sonsuz bir döngüde çalışıyor ve Runnable -s isteğe bağlı olarak değiştiriliyor?NewCachedThreadPool konuları nasıl kullanır?

cevap

4

Runnable başka bir Runnable'ı arayabilir.

Her iş parçacığı yalnızca bir ana Runnable'ı çalıştırır, ancak Runnable, Çalıştırılabilir bir BlockingQueue'dan Runnables alır ve kapatılıncaya kadar bunları çağırır.

Basitleştirilmiş.

final BlockingQueue<Runnable> queue = ... 

Runnable runs = new Runnable() { public void run() { 
    while(running) 
     queue.take().run(); 
}}; 

Gerçekten nasıl yaptığını görmek için kodu okuyabilirsiniz.

+1

Tahmin edebilirim ... imza ayrıca bu işlevselliği önerir. – zeller

İlgili konular