1.模拟完成多个线程往10几万用户发短信操作
文件在E:\学习文档子目录压缩\并发技术\J2SE多线程基础 或我的网盘\我的笔记\学习文档子目录压缩\并发技术\J2SE多线程基础下
项目结构
代码如下
User.java
package com.xiang.pojo;
public class User {
private String username;
private String address;
public User(String username, String address) {
super();
this.username = username;
this.address = address;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the address
*/
public String getAddress() {
return address;
}
/**
* @param address the address to set
*/
public void setAddress(String address) {
this.address = address;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "User [username=" + username + ", address=" + address + "]";
}
}
PageUtil.java
package com.xiangshuai.util;
import java.util.ArrayList;
import java.util.List;
/**
* @author lqx
*分页工具类
*/
public class PageUtil {
/**
* @methoDesc:功能描述:将原list数据 切分成 (list.size/pageSize)--整除或(list.size/pageSize)+1非整除
* 个 list集合进行返回
* @param list :原list数据
* @param pageSize :切分成的list集合数量,最后一个list集合数量可能会小于这个数
* @return 切分好的list
*/
static public <T> List<List<T>> splictList(List<T> list,int pageSize){
int size = list.size();
//总页数
int totalPage=0;
int temp = size%pageSize;
if(temp==0){
totalPage=size/pageSize;
}else{
totalPage=size/pageSize+1;
}
int endNo=pageSize;
int startNo=0;
List<List<T>> nlist = new ArrayList<List<T>>();
for(int i=0;i<totalPage;i++){
List<T> tempList = new ArrayList<T>();
for(int j=startNo;j<endNo;j++){
tempList.add(list.get(j));
}
startNo+=pageSize;
if(totalPage-2==i){//最后一页的前一页,下一次的结束也为list.size
endNo=list.size();
}else{
endNo+=pageSize;
}
nlist.add(tempList);
}
return nlist;
}
}
DxThread.java
package com.xiangshuai.thread;
import java.util.List;
public class DxThread<T> implements Runnable {
private List<T> list;
public DxThread(List<T> list) {
super();
this.list = list;
}
private DxThread() {
super();
}
@Override
public void run() {
//模拟完成发短信的动作
list.forEach((t)->{
String name = Thread.currentThread().getName();
System.out.println("当前线程为 "+name+"--->"+t);
});
}
}
Thread1.java
package com.xiangshuai.thread;
import java.util.ArrayList;
import java.util.List;
import com.xiang.pojo.User;
import com.xiangshuai.util.PageUtil;
/**
* @author lqx
*模拟完成多个线程往10几万用户发短信操作
*/
public class Thread1 {
public static void main(String[] args) {
//造11万个用户
List<User> list=new ArrayList<User>();
for(int i=0;i<110000;i++){
list.add(new User("刘小明"+i, "朝阳大街 "+i+" 号"));
}
//将11万个用户数据往 6个list容器中装,前5个每个装2万条数据
List<List<User>> splictList = PageUtil.splictList(list, 20000);
// 分别用6个线程来跑,6个lit中的数据,模拟完成发短信的动作
for(int i=0;i<splictList.size();i++){
DxThread<User> dxThread = new DxThread<>(splictList.get(i));
Thread thread = new Thread(dxThread,"线程"+(i+1));
thread.start();
}
/*list.forEach((user)->{
System.out.println(user);
});
System.out.println("=============================------");
List<List<User>> newList = PageUtil.splictList(list, 2);
newList.forEach((user)->{
System.out.println(user);
});*/
}
}
1.模拟完成多个线程往10几万用户发短信操作相关推荐
- 解决:苹果手机不能给10开头的号码发短信怎么办?
发给1069070069会自动变成(10)69070069导致短信发不出去 解答 在这种号码的前面,加上一个中文逗号,即可
- Jmeter-函数助手-随机函数的使用(模拟1000+个手机用户获取短信验证码)
如何模拟1000个手机用户登录? 现在很多APP或者网站都需要使用手机号进行登录,那么使用手机号进行登录时,必然就需要"手机号+短信验证码"才可登录成功. 在实际测试过程中,测试人 ...
- UDP(发短信:简单模拟)
发短信:不用连接,需要知道对方地址 文章目录 UDP发送消息 实现互相聊天 UDP多线程实现聊天 UDP发送消息 UDP传输 我们要用UDP传输数据时,怎么用Socket建立连接呢? Datagram ...
- android adb 模拟来电,在Android模拟器中模拟GPS、打电话、发短信……
首先,当然要打开模拟器 然后,连接模拟器 C:\Users\BillGates>telnet localhost 5554 Android Console: type 'help' for a ...
- Android模拟发短信,[转载]Android模拟器中模拟GPS、打电话、发短信
首先,当然要打开模拟器 然后,连接模拟器 C:UsersBillGates>telnet localhost 5554 Android Console: type 'help' for a li ...
- Android模拟器模拟打电话,发短信
启动模拟器 并 连接成功 C:\Users\BillGates>telnet localhost 5554(模拟器端口号) Android Console: type 'help' for a ...
- 不给移动一分钱!10个免费发短信的国外站点
飞鸽传书 如今国内的用户对于手机资费的抱怨还是一直存在的,且不说双向收费这样的老大难问题,单就通话或短信的资费来讲我们的标准也都存在普遍较高的问题,虽然国家已经多次召开资费标准听证会,而我们也确实见到 ...
- linux 模拟打电话,Android 调用打电话和发短信功能
1.打电话 可以自己写界面,在button的单击事件中添加如下代码即可: Intent intent = new Intent(); intent.setAction("Android.in ...
- 小程序短信验证码登录,1分钟实现小程序发短信功能,借助云开发10行代码实现短信验证码登录小程序
老规矩先看效果图 普通短信 验证码短信 今天被云开发官方告知,云开发支持发短信功能了,然后就迫不及待的来尝下鲜. 进入官方文档一看,云开发给咱们开发者的福利还真不小. 不仅仅可以很方便的使用短信功能, ...
最新文章
- 中国最难考的大学共有31所,分6大梯度,考上毕业很抢手
- Windows 10 不能安装更新 (0x8024402f)
- linux ftp站点名称,Linux ftp命令的使用方法有哪些
- uploadify scriptData参数无法传参的问题
- 定义一个Matrix类,实现矩阵的加法和乘法
- Java I/O NIO学习
- 春晚“宕机”魔咒失效 火山引擎助抖音成功闯关
- MVC3升级到MVC4模型验证信息显示为英文问题及解决方案
- 脱库数据分享论坛_22G疑为12306脱库文件大揭秘
- html和css基础整理
- 保存Simulink仿真模型为图片及PDF
- 基于STC89C52的自动循迹小车项目
- imutils基础(7)使用 OpenCV 查找轮廓中的极值点
- BP算法误差逆传播参数更新公式推导
- 基于单片机GPS定位语音智能盲人拐杖设计(毕设课设)
- 计算机科学与技术学习路线编程基础四大件应用实践编程(含C++学习路线)
- 性能调优 - JVM
- 华为:中国平安城市发展白皮书
- web电子商城实现及源码
- 股神巴菲特十大致富秘籍