zoukankan      html  css  js  c++  java
  • java多线程快速入门(六)

    多线程应用实例(批量发送短信)

    1、创建实体类

    package com.cppdy;
    
    public class UserEntity {
        
        private int id;
        private String name;
        
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    
    }
    UserEntity

    2、创建工具类

    package com.cppdy;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class ListUtils {
    
        static public <T> List<List<T>> splitList(List<T> list, int pageSize) {
            int listSize = list.size();
            int page = (listSize + (pageSize - 1)) / pageSize;
            List<List<T>> arrayList = new ArrayList<List<T>>();
            for (int i = 0; i < page; i++) {
                List<T> subList = new ArrayList<T>();
                for (int j = 0; j < listSize; j++) {
                    int pageIndex = ((j + 1) + (pageSize - 1)) / pageSize;
                    if (pageIndex == (i + 1)) {
                        subList.add(list.get(j));
                    }
                    if((j+1)==((j+1)*pageSize)) {
                        break;
                    }
                }
                arrayList.add(subList);
            }
            return arrayList;
        }
    
    }
    ListUtils

    3、创建实例类

    package com.cppdy;
    
    import java.util.ArrayList;
    import java.util.List;
    
    class sendMsgThread extends Thread{
        
        List<UserEntity> userList;
        public sendMsgThread(List<UserEntity> list) {
            this.userList=list;
        }
        @Override
        public void run() {
            for (int i = 0; i < userList.size(); i++) {
                System.out.println("线程"+this.getId()+"发送短信给"+userList.get(i).getName());
            }
        }
    }
    
    public class Send {
    
        public static void main(String[] args) {
            
            List<List<UserEntity>> splitList = ListUtils.splitList(initUser(), 40);
            for (int i = 0; i < splitList.size(); i++) {
                new sendMsgThread(splitList.get(i)).start();
            }
    
        }
    
        public static List<UserEntity> initUser(){
            ArrayList<UserEntity> userList = new ArrayList<>();
            UserEntity userEntity;
            for (int i = 0; i < 150; i++) {
                userEntity = new UserEntity();
                userEntity.setId(i);
                userEntity.setName("name"+i);
                userList.add(userEntity);
            }
            return userList;
        }
    }
    Send
  • 相关阅读:
    软件创意——汽车语音安全系统
    对系统管理岗位的理解。
    求二维数组最大子数组的和。郭林林&胡潇丹
    电梯调度 结对项目开发(郭林林&胡潇丹)
    电梯调度 结对项目开发
    电梯调度 结对项目开发
    电梯调度的设计与实现过程(李帅 张硕)
    敏捷软件方法综述
    二维数组的子数组和最大问题(李帅 张硕)
    求数组子数组和的最大值 (线性算法)
  • 原文地址:https://www.cnblogs.com/jiefu/p/10014304.html
Copyright © 2011-2022 走看看