我有一個處理類和一個計算類。架構:多線程工人使用同步處理方法
的處理對象發送以下參數在計算對象的方法:
- 問題(類型此處無關緊要)
- 一個
ExecutorService
對象 - 自參考
在計算對象中,問題通過使用ExecutorService
在多個線程中解決。 只要獲得結果,就會調用處理對象的同步方法。
這個建築好嗎?
我有一個處理類和一個計算類。架構:多線程工人使用同步處理方法
的處理對象發送以下參數在計算對象的方法:
ExecutorService
對象在計算對象中,問題通過使用ExecutorService
在多個線程中解決。 只要獲得結果,就會調用處理對象的同步方法。
這個建築好嗎?
不是調用同步方法,而是將結果傳遞給作爲處理對象成員的java.util.concurrent.BlockingQueue。
然後讓處理對象從隊列中移除結果並按照自己的步調處理它們。
看看java.util.concurrentjavadoc以及。
好吧,我應該說:結果是java.sql.ResultSet類型。所以我必須在使用它後關閉結果,在使用併發提示時我認爲這很困難。 – user3541377
然後,您需要解釋同步方法中發生了什麼。如果以同步方法處理ResultSet,則可能會遇到數據庫鎖定問題。 –
我正在使用.next()方法獲得結果。所有表都設置爲只讀,因此不能對數據庫進行修改。 – user3541377
好的是什麼? :) – djb