文件在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. java连接mysql数据库增删改查_java连接mysql数据库增删改查操作记录
  2. Swift中空合运算符、闭区间运算符、单侧区间、半开区间
  3. iOS开发-编译出错 duplicate symbols for architecture x86_64
  4. 调用discuz编辑器发布帖子显示html代码的解决办法
  5. react入门(一)
  6. 红蓝对抗之win10 权限提升
  7. win7计算机节电模式,大师详解win7省电模式怎么关的方法介绍
  8. 内存优化总结: ptmalloc、tcmalloc 和 jemalloc
  9. 题目内容: 写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32 其中C表示摄氏温度,F表示华氏温度。 程序的输入是一个整数,表示华氏温度。输出对
  10. 使用Grunt生成雪碧图
  11. Android运行ListView的代码,Android ListView组件详解及示例代码
  12. 大学一路走来总结(技术)
  13. scrapy如何获取network请求相关信息
  14. ABAP开发基础知识
  15. 安搭Share:如果说格局决定人生,那么什么决定格局
  16. 电脑进共享云盘报错“不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接......”
  17. 关于检测浏览器是否支持flash的js代码
  18. 《惢客创业日记》2022.03.01-31(周二)二月份的总结和三月份的计划
  19. 来CCF HPC China 2019走一走,领略别样的算力之美
  20. spring boot 是如何利用jackson进行反序列化的?

热门文章

  1. 150ms流畅体验 NBA2KOnline如何网络同步优化
  2. 2021年麻城一中高考成绩查询,麻城一中2020年高考成绩 麻城一中2020年高考喜报...
  3. c语言 模拟tftp——tftp客户端/服务器端仿写
  4. 02-字体相关的样式
  5. 怎么连接到局域网内的另一台电脑
  6. 多电脑共享键鼠,传输数据和剪贴板的“黑科技”,在座肯定幻想过
  7. html css重设,typo.css
  8. 立创开源 | 高压可控硅驱动控制板
  9. 最爱的三毛之《沙漠中的饭店》
  10. 西门子1200 压力PID调节实操