以下是多线程分页算法的具体实现,需要的可以试一下
/**
* 多线程运行时的分页算法
*/
@Test
public void testThreadForPage(){
int allPage = 18; //总页数
int allThread = 5; //总共要启动的线程数
int everyPage = (int)(allPage/allThread); //每个线程要处理的页数
int everyPageAdd = (int)(allPage%allThread); //前几个线程要增加一页
int startPage = 0,endPage = 0; //开始页数和结束页数(从下标0开始)
int flag = 0; //偏移量
for(int page = 0 ;page < 5; page++){
if(page == 0)
startPage = 0;
else
startPage = endPage + 1;
if(page<everyPageAdd){
endPage = (page+1)*everyPage+flag;
flag++;
}else
endPage = (page+1)*everyPage+flag-1;
System.out.println(startPage+"--"+endPage);
}
}