java多線程數據分頁處理實例講解

在數據的最終結果上,我們能夠通過分類的方法,準備的篩選出不同類別結果的信息。這裡我們發散一下思維,在Java中對於數據大量處理的,多線程是一個非常常見的代表,我們可以用分頁來處理多線程的數據問題。下面我們對分類的類型進行瞭解,然後帶來兩種分頁在多線程的邏輯。

1.常見的分頁類型

傳統的:采用傳統的分頁方式,可以明確的獲取數據信息,如有多少條數據,分多少頁顯示等。

下拉式:采用下拉式的分頁方式,一般無法獲取明確的數據數量相關的信息,但在分頁操作以後,仍然可以看到之前查詢的數據。

2.分頁式查詢邏輯

int pageSize = 100;
int currentPageLength = 0;
int pageIndex = 0;
ExecutorService exe = newFixedThreadPool(Runtime.getRuntime().availableProcessors());
do {
  int offset = pageIndex * pageSize;
  List<TradeInfo> tradeInfos = tradeInfoService.findTradeInfoBysPage(queryParams,offset,pageSize);
  if (null != tradeInfos && tradeInfos.size() > 0) {
    currentPageLength = tradeInfos.size();
    TradeInfoProcesserTask task = new TradeInfoProcesserTask(tradeInfos );
    exe.execute(task);
    pageIndex++;
  }else{
    System.out.println("Page Query TradeInfo Got NOTHING! Break query loop!");
    break;
  }
} while (currentPageLength == pageSize);
exe.shutdown();
while(true) {
  if(exe.isTerminated()){
    doOtherThings();
    System.out.println("分頁式多線程處理數據完畢!");
    break;
  }
}

3.數據處理邏輯

public class TradeInfoProcesserTask implements Runnable{
  private volatile List<TradeInfo> tradeInfos;
   
  public TradeInfoProcesserTask (List<TradeInfo> _tradeInfos){
    tradeInfos = _tradeInfos;
  }
   
  @Override
  public void run() {
    processTradeInfos();
  }
   
  private void processTradeInfos(){
    //do something with tradeInfos .....
  }
}

到此這篇關於java多線程數據分頁處理實例講解的文章就介紹到這瞭,更多相關分頁處理java多線程的數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: