多线程分批处理信息

更新时间:2018-08-29 10:30:31点击次数:979次

1.初始化数据

将数据存入集合

  1. //将所有用户数据存入集合 List
  2. staticprivateList initUser(){
  3. Listlist=newArrayList();
  4. for(int i=0; i<36;i++){
  5. list.add(newuserEntity("userId:"+i,"userName:"+i));
  6. }
  7. returnlist;
  8. }


2.定义每个线程分批发送大小

intuserCount =2;


3.计算线程要分配的数据

用分页插件分割数据

分页工具类

  1. publicclassListUtils{
  2. /**
  3. *@returnType:@paramlist 切割集合
  4. *@returnType:@parampageSize 分页长度
  5. *@returnType:@returnList> 返回分页数据
  6. */
  7. staticpublicList> splitList(Listlist, int pageSize) {
  8. int listSize =list.size();
  9. int page = (listSize + (pageSize -1)) / pageSize;
  10. List> listArray =newArrayList>();
  11. for(int i =0; i < page; i++) {
  12. List subList =newArrayList();
  13. for(int j =0; j < listSize; j++) {
  14. int pageIndex = ((j +1) + (pageSize -1)) / pageSize;
  15. if(pageIndex == (i +1)) {
  16. subList.add(list.get(j));
  17. }
  18. if((j +1) == ((j +1) * pageSize)) {
  19. break;
  20. }
  21. }
  22. listArray.add(subList);
  23. }
  24. returnlistArray;
  25. }
  26. }

  1. List> sqlitList = ListUtils.splitList(initUser,userCount);
  2. for(int i=0; i
  3. Listlist= sqlitList.get(i);
  4. }
  5. //每一个List list 中有userCount个对象


4.分配发送


  1. classUserSendThreadimplementsRunnable{
  2. privateList listUser;
  3. publicUserSendThread(List listUser){
  4. this.listUser=listUser;
  5. }
  6. @Override
  7. publicvoidrun(){
  8. for(userEntity userentity :listUser) {
  9. System.out.println("线程:"+Thread.currentThread().getName()+userentity.toString());
  10. }
  11. }
  12. }
  13. //线程循环处理数据

创建线程

  1. List> sqlitList = ListUtils.splitList(initUser,userCount);
  2. for(int i=0; i
  3. Listlist= sqlitList.get(i);
  4. UserSendThread t1 =newUserSendThread(list);
  5. // 4.分配发送
  6. Thread thread =newThread(t1,"线程:"+i);
  7. thread.start();
  8. System.out.println("----");
  9. }


本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息