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!