JAVA模拟多线程给多用户发送短信
这篇文章主要介绍了JAVA模拟多线程给多用户发送短信,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
代码编写逻辑,假设需要给11个用户发送短信,每一个线程给两个用户发送短信,实现多线程的并发处理
创建实体user
packagewww.it.com.test; /** *@authorwangjie *@date2019/11/2017:10 *@description *@company石文软件有限公司 */ publicclassUser{ privateStringname; privateIntegerid; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicIntegergetId(){ returnid; } publicvoidsetId(Integerid){ this.id=id; } publicUser(){ } publicUser(Stringname,Integerid){ this.name=name; this.id=id; } @Override publicStringtoString(){ return"User{"+ "name='"+name+'\''+ ",id="+id+ '}'; } }
业务代码
packagewww.it.com.test; importjava.util.ArrayList; importjava.util.List; /** *@authorwangjie *@date2019/11/2017:09 *@description *@company石文软件有限公司 */ publicclassBranchThread{ publicstaticvoidmain(String[]args){ //准备数据源 ListuserList=getInitUser(); //定义每个线程处理多少用户 Integercount=2; //根据用户数确定需要多少个线程 List >lists=splitList(userList,count); //将用户传每个线程执行 for(List
list:lists){ UserThreaduserThread=newUserThread(list); Threadthread=newThread(userThread); //启动线程 thread.start(); } } /** *初始话数据 *@return */ publicstaticList getInitUser(){ ArrayList list=newArrayList<>(); for(inti=0;i<11;i++){ Useruser=newUser(); user.setId(i); Stringname=String.valueOf(i); user.setName(name); list.add(user); } returnlist; } /** *计算出需要多少个线程 *@paramlist *@parampageSize *@param *@return */ publicstatic List >splitList(List
list,intpageSize){ intlistSize=list.size(); intpage=(listSize+(pageSize-1))/pageSize; List >listArray=newArrayList
>(); for(inti=0;i
subList=newArrayList (); for(intj=0;j 创建线程
packagewww.it.com.test; importjava.util.List; /** *@authorwangjie *@date2019/11/2017:03 *@description给11个人分批发送短信 *@company石文软件有限公司 */ publicclassUserThreadimplementsRunnable{ privateListuserList; publicUserThread(List userList){ this.userList=userList; } publicList getUserList(){ returnuserList; } publicvoidsetUserList(List userList){ this.userList=userList; } @Override publicvoidrun(){ userList.forEach(user->{ System.out.println("线程"+Thread.currentThread().getId()+user.toString()); }); //调用第三方发送短信的接口 } } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。