1. 程式人生 > 程式設計 >java多執行緒資料分頁處理例項講解

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多執行緒的資料內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!