2011-05-21 48 views
2

我正在使用此代碼來創建線程。Java多線程控制

 while ((strLine = br.readLine()) != null) { 
       r = new runnable(strLine); 
       new Thread(r).start(); 
       x++; 
       Thread.sleep(100); 
     } 

如何控制在任何時間點運行的線程的最大數量? 這段代碼有問題,內存使用不斷上升(內存泄漏)有沒有更好的方法來做到這一點? 我嘗試使用調度程序,但沒有幫助。

回答

10

您可以使用ExecutorService來創建約束線程池。

ExecutorService executor = Executors.newFixedThreadPool(10); 

將創建一個包含10個可用線程的池。您可以致電

executor.submit(new Runnable() { ... }) 

爲每個工作單元。

編輯:我應該注意到這個功能只能在Java 1.5及更高版本中使用。

+0

現在正常工作:)謝謝 – user557348 2011-05-21 05:35:10