文件在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几万用户发短信操作相关推荐

  1. 解决:苹果手机不能给10开头的号码发短信怎么办?

    发给1069070069会自动变成(10)69070069导致短信发不出去 解答 在这种号码的前面,加上一个中文逗号,即可

  2. Jmeter-函数助手-随机函数的使用(模拟1000+个手机用户获取短信验证码)

    如何模拟1000个手机用户登录? 现在很多APP或者网站都需要使用手机号进行登录,那么使用手机号进行登录时,必然就需要"手机号+短信验证码"才可登录成功. 在实际测试过程中,测试人 ...

  3. UDP(发短信:简单模拟)

    发短信:不用连接,需要知道对方地址 文章目录 UDP发送消息 实现互相聊天 UDP多线程实现聊天 UDP发送消息 UDP传输 我们要用UDP传输数据时,怎么用Socket建立连接呢? Datagram ...

  4. android adb 模拟来电,在Android模拟器中模拟GPS、打电话、发短信……

    首先,当然要打开模拟器 然后,连接模拟器 C:\Users\BillGates>telnet localhost 5554 Android Console: type 'help' for a ...

  5. Android模拟发短信,[转载]Android模拟器中模拟GPS、打电话、发短信

    首先,当然要打开模拟器 然后,连接模拟器 C:UsersBillGates>telnet localhost 5554 Android Console: type 'help' for a li ...

  6. Android模拟器模拟打电话,发短信

    启动模拟器 并 连接成功 C:\Users\BillGates>telnet localhost 5554(模拟器端口号) Android Console: type 'help' for a ...

  7. 不给移动一分钱!10个免费发短信的国外站点

    飞鸽传书 如今国内的用户对于手机资费的抱怨还是一直存在的,且不说双向收费这样的老大难问题,单就通话或短信的资费来讲我们的标准也都存在普遍较高的问题,虽然国家已经多次召开资费标准听证会,而我们也确实见到 ...

  8. linux 模拟打电话,Android 调用打电话和发短信功能

    1.打电话 可以自己写界面,在button的单击事件中添加如下代码即可: Intent intent = new Intent(); intent.setAction("Android.in ...

  9. 小程序短信验证码登录,1分钟实现小程序发短信功能,借助云开发10行代码实现短信验证码登录小程序

    老规矩先看效果图 普通短信 验证码短信 今天被云开发官方告知,云开发支持发短信功能了,然后就迫不及待的来尝下鲜. 进入官方文档一看,云开发给咱们开发者的福利还真不小. 不仅仅可以很方便的使用短信功能, ...

最新文章

  1. 中国最难考的大学共有31所,分6大梯度,考上毕业很抢手
  2. Windows 10 不能安装更新 (0x8024402f)
  3. linux ftp站点名称,Linux ftp命令的使用方法有哪些
  4. uploadify scriptData参数无法传参的问题
  5. 定义一个Matrix类,实现矩阵的加法和乘法
  6. Java I/O NIO学习
  7. 春晚“宕机”魔咒失效 火山引擎助抖音成功闯关
  8. MVC3升级到MVC4模型验证信息显示为英文问题及解决方案
  9. 脱库数据分享论坛_22G疑为12306脱库文件大揭秘
  10. html和css基础整理
  11. 保存Simulink仿真模型为图片及PDF
  12. 基于STC89C52的自动循迹小车项目
  13. imutils基础(7)使用 OpenCV 查找轮廓中的极值点
  14. BP算法误差逆传播参数更新公式推导
  15. 基于单片机GPS定位语音智能盲人拐杖设计(毕设课设)
  16. 计算机科学与技术学习路线编程基础四大件应用实践编程(含C++学习路线)
  17. 性能调优 - JVM
  18. 华为:中国平安城市发展白皮书
  19. web电子商城实现及源码
  20. 股神巴菲特十大致富秘籍

热门文章

  1. 七、FFmpeg使用---AAC音频编译
  2. 17素材网素材免积分下载
  3. nodejs使用redis.js并进行封装,实现数据存取
  4. Java+MySQL 基于ssm的公司员工人事工资管理系统#毕业设计
  5. 技术分析(三)均线理论
  6. 机械设计制造及其自动化
  7. 2-12-mysql-sql语句进阶
  8. js加密怎样不让别人看到
  9. linux vbox安装mac os,使用virtualbox虚拟机安装macos和linux系统
  10. golang泛型介绍