2014-05-19 28 views
0

我有一個處理類和一個計算類。架構:多線程工人使用同步處理方法

的處理對象發送以下參數在計算對象的方法:

  • 問題(類型此處無關緊要)
  • 一個ExecutorService對象
  • 自參考

在計算對象中,問題通過使用ExecutorService在多個線程中解決。 只要獲得結果,就會調用處理對象的同步方法。

這個建築好嗎?

+0

好的是什麼? :) – djb

回答

0

不是調用同步方法,而是將結果傳遞給作爲處理對象成員的java.util.concurrent.BlockingQueue

然後讓處理對象從隊列中移除結果並按照自己的步調處理它們。

看看java.util.concurrentjavadoc以及。

+0

好吧,我應該說:結果是java.sql.ResultSet類型。所以我必須在使用它後關閉結果,在使用併發提示時我認爲這很困難。 – user3541377

+0

然後,您需要解釋同步方法中發生了什麼。如果以同步方法處理ResultSet,則可能會遇到數據庫鎖定問題。 –

+0

我正在使用.next()方法獲得結果。所有表都設置爲只讀,因此不能對數據庫進行修改。 – user3541377