我正在使用Java 1.6以下的併發功能來脫機執行某些任務。當通過註冊創建的用戶,我需要執行一些記錄點播任務&我不希望阻止用戶,所以我一直在使用下面的代碼通過Java中的ExecutorService實現併發性
java.util.concurrent.ExecutorService myservice = Executors.newSingleThreadExecutor();
myservice.execute(new myTask(user));
在這裏,我有一個在Run方法中實現Runnable &的內部類myTask,我在做脫機活動(從而使它成爲非阻塞調用)。
現在,一旦用戶登錄到網站,點擊某些動作(網頁上的按鈕),我需要執行類似的離線活動&我不想將該呼叫作爲阻止呼叫。我在這個頁面上有4個動作需要執行離線任務。
可以使用類似上面的代碼與4個不同的內部類&在他們內部執行脫機活動?如果不是,還有什麼替代方案?
謝謝!
我正在使用Struts2&在struts action中,我有這個執行器線程。你能提供關於如何實現線程池的示例行嗎?我需要配置線程池大小嗎?如果是這樣,在哪裏?我正在使用tomcat 6服務器。 – Mike 2012-01-03 04:18:15
@Mike添加了示例代碼。您需要確保在webapp關閉之前,只創建一次花費池並關閉。 – 2012-01-03 04:23:50
我還在使用這些API的新功能。我可以看到你已經調用newFixedThreadPool。但那麼它將如何調用myTask,它是我的實現Runnable接口的內部類?我需要調用pool.execute(new myTask(user));另外,如果超過10個用戶嘗試訪問網站會發生什麼情況? – Mike 2012-01-03 04:27:38