Maison >Java >javaDidacticiel >Comment traiter les données multithread Java dans les pages

Comment traiter les données multithread Java dans les pages

WBOY
WBOYavant
2023-04-18 22:04:011284parcourir

1. Types de pagination courants

Traditionnel : en utilisant la méthode de pagination traditionnelle, vous pouvez obtenir clairement des informations sur les données, telles que le nombre de données, le nombre de pages à afficher, etc.

Liste déroulante : en utilisant la méthode de pagination déroulante, il est généralement impossible d'obtenir des informations claires relatives au nombre de données, mais après l'opération de pagination, vous pouvez toujours voir les données précédemment interrogées.

2. Logique de requête de pagination

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. Logique de traitement des données

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 .....
    }
}
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer