最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA模擬多線(xiàn)程給多用戶(hù)發(fā)送短信

 更新時(shí)間:2019年12月20日 11:27:51   作者:求知若渴的蝸牛  
這篇文章主要介紹了JAVA模擬多線(xiàn)程給多用戶(hù)發(fā)送短信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了JAVA模擬多線(xiàn)程給多用戶(hù)發(fā)送短信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

代碼編寫(xiě)邏輯,假設(shè)需要給11個(gè)用戶(hù)發(fā)送短信,每一個(gè)線(xiàn)程給兩個(gè)用戶(hù)發(fā)送短信,實(shí)現(xiàn)多線(xiàn)程的并發(fā)處理

創(chuàng)建實(shí)體user

package www.it.com.test;

/**
 * @author wangjie
 * @date 2019/11/20 17:10
 * @description
 * @company 石文軟件有限公司
 */
public class User {

  private String name;
  private Integer id;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public User() {
  }

  public User(String name, Integer id) {
    this.name = name;
    this.id = id;
  }

  @Override
  public String toString() {
    return "User{" +
        "name='" + name + '\'' +
        ", id=" + id +
        '}';
  }
}

業(yè)務(wù)代碼

package www.it.com.test;

import java.util.ArrayList;
import java.util.List;

/**
 * @author wangjie
 * @date 2019/11/20 17:09
 * @description
 * @company 石文軟件有限公司
 */
public class BranchThread {
  public static void main(String[] args) {
    //準(zhǔn)備數(shù)據(jù)源
    List<User> userList = getInitUser();
    //定義每個(gè)線(xiàn)程處理多少用戶(hù)
    Integer count = 2;
    //根據(jù)用戶(hù)數(shù)確定需要多少個(gè)線(xiàn)程
    List<List<User>> lists = splitList(userList, count);
    //將用戶(hù)傳每個(gè)線(xiàn)程執(zhí)行
    for (List<User> list:lists) {
      UserThread userThread=new UserThread(list);
      Thread thread=new Thread(userThread);
      //啟動(dòng)線(xiàn)程
      thread.start();
    }



  }

  /**
   * 初始話(huà)數(shù)據(jù)
   * @return
   */
  public static List<User> getInitUser() {
    ArrayList<User> list = new ArrayList<>();
    for (int i = 0; i < 11; i++) {
      User user = new User();
      user.setId(i);
      String name = String.valueOf(i);
      user.setName(name);
      list.add(user);
    }
    return list;
  }

  /**
   * 計(jì)算出需要多少個(gè)線(xiàn)程
   * @param list
   * @param pageSize
   * @param <T>
   * @return
   */
  public static <T> List<List<T>> splitList(List<T> list, int pageSize) {
    int listSize = list.size();
    int page = (listSize + (pageSize - 1)) / pageSize;
    List<List<T>> listArray = 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;
        }
      }
      listArray.add(subList);
    }
    return listArray;
  }
}

創(chuàng)建線(xiàn)程

package www.it.com.test;

import java.util.List;

/**
 * @author wangjie
 * @date 2019/11/20 17:03
 * @description 給11個(gè)人分批發(fā)送短信
 * @company 石文軟件有限公司
 */
public class UserThread implements Runnable{

  private List<User> userList;

  public UserThread(List<User> userList) {
    this.userList = userList;
  }

  public List<User> getUserList() {
    return userList;
  }

  public void setUserList(List<User> userList) {
    this.userList = userList;
  }

  @Override
  public void run() {
    userList.forEach(user -> {
      System.out.println("線(xiàn)程"+Thread.currentThread().getId()+user.toString());
    });
    
    //調(diào)用第三方發(fā)送短信的接口
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解如何通過(guò)Java實(shí)現(xiàn)類(lèi)似Nginx代理

    詳解如何通過(guò)Java實(shí)現(xiàn)類(lèi)似Nginx代理

    最近遇到一個(gè)問(wèn)題,在內(nèi)網(wǎng)環(huán)境中部署的項(xiàng)目需要調(diào)用外網(wǎng)完成一些應(yīng)用,一般情況我們可以通過(guò)增加一臺(tái)機(jī)器,部署到可以訪(fǎng)問(wèn)外網(wǎng)的服務(wù)器上,然后內(nèi)網(wǎng)直接連接該機(jī)器通過(guò)Nginx進(jìn)行代理即可,所以本文介紹了如何通過(guò)Java實(shí)現(xiàn)類(lèi)似Nginx代理,需要的朋友可以參考下
    2024-08-08
  • Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例

    Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例

    本文主要介紹了Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Java 中的控制反轉(zhuǎn)(IOC)詳解

    Java 中的控制反轉(zhuǎn)(IOC)詳解

    這篇文章主要介紹了理解Java 中的IOC控制反轉(zhuǎn),具有一定參考價(jià)值,需要的朋友可以了解下,希望能夠給你帶來(lái)幫助
    2021-10-10
  • Java如何在PDF中添加ToolTip工具提示

    Java如何在PDF中添加ToolTip工具提示

    大家好,本篇文章主要講的是Java如何在PDF中添加ToolTip工具提示,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-01-01
  • 如何對(duì)jdk版本升級(jí)或降級(jí)

    如何對(duì)jdk版本升級(jí)或降級(jí)

    這篇文章主要介紹了如何對(duì)jdk版本升級(jí)或降級(jí)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Springboot+AOP實(shí)現(xiàn)返回?cái)?shù)據(jù)提示語(yǔ)國(guó)際化的示例代碼

    Springboot+AOP實(shí)現(xiàn)返回?cái)?shù)據(jù)提示語(yǔ)國(guó)際化的示例代碼

    這篇文章主要介紹了Springboot+AOP實(shí)現(xiàn)返回?cái)?shù)據(jù)提示語(yǔ)國(guó)際化的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • Java如何通過(guò)反射獲取Constructor、Field、Method對(duì)象

    Java如何通過(guò)反射獲取Constructor、Field、Method對(duì)象

    反射指的是對(duì)象的反向處理操作,根據(jù)對(duì)象取得對(duì)象的來(lái)源信息,在反射的世界里面,看重的不再是一個(gè)對(duì)象,而是對(duì)象身后的組成,下面這篇文章主要給大家介紹了關(guān)于Java如何通過(guò)反射獲取Constructor、Field、Method對(duì)象的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Java多個(gè)線(xiàn)程同時(shí)執(zhí)行的方法

    Java多個(gè)線(xiàn)程同時(shí)執(zhí)行的方法

    這篇文章主要介紹了Java多線(xiàn)程處理文件詳解與代碼示例,通過(guò)本文的介紹和代碼示例,我們了解了如何使用Java多線(xiàn)程來(lái)處理文件,使用多線(xiàn)程技術(shù)可以顯著提高文件處理的效率,特別是對(duì)于大量文件的處理任務(wù),需要的朋友可以參考下
    2024-12-12
  • spring啟動(dòng)加載程序的幾種方法介紹

    spring啟動(dòng)加載程序的幾種方法介紹

    本篇文章主要介紹了spring啟動(dòng)加載程序的幾種方法介紹,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • Eclipse安裝配置方法圖文教程

    Eclipse安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Eclipse安裝配置方法圖文教程,感興趣的小伙伴們可以參考一下
    2016-06-06

最新評(píng)論

邢台市| 吴忠市| 石楼县| 原阳县| 平武县| 万盛区| 富川| 安康市| 乌审旗| 大名县| 贵德县| 台东县| 客服| 富川| 遂溪县| 许昌市| 鄂托克前旗| 昆山市| 鄂尔多斯市| 博客| 宽城| 新丰县| 哈尔滨市| 怀来县| 盐源县| 全椒县| 苏尼特右旗| 吴旗县| 南丹县| 霍州市| 蕉岭县| 河北省| 龙门县| 沧源| 宁阳县| 华坪县| 额尔古纳市| 乐业县| 阿瓦提县| 牡丹江市| 兴安县|