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(Listlist:lists){
UserThreaduserThread=newUserThread(list);
Threadthread=newThread(userThread);
//启动线程
thread.start();
}
}
/**
*初始话数据
*@return
*/
publicstaticListgetInitUser(){
ArrayListlist=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
*/
publicstaticList>splitList(Listlist,intpageSize){
intlistSize=list.size();
intpage=(listSize+(pageSize-1))/pageSize;
List>listArray=newArrayList>();
for(inti=0;isubList=newArrayList();
for(intj=0;j
创建线程
packagewww.it.com.test;
importjava.util.List;
/**
*@authorwangjie
*@date2019/11/2017:03
*@description给11个人分批发送短信
*@company石文软件有限公司
*/
publicclassUserThreadimplementsRunnable{
privateListuserList;
publicUserThread(ListuserList){
this.userList=userList;
}
publicListgetUserList(){
returnuserList;
}
publicvoidsetUserList(ListuserList){
this.userList=userList;
}
@Override
publicvoidrun(){
userList.forEach(user->{
System.out.println("线程"+Thread.currentThread().getId()+user.toString());
});
//调用第三方发送短信的接口
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。