线程池的作用:

线程池作用就是限制系统中执行线程的数量。

根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。

为什么要用线程池:

减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务

可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)

线程池类

import java.util.Random;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

public class ThreadTest {

private static ExecutorService executor = Executors.newFixedThreadPool(5);

private static Task task;

public static void main(String[] args) {

ThreadTest test=new ThreadTest();

int ThreadNum=0;

while(true){

ThreadNum++;

test.start(ThreadNum);

}

}

private void start(final int ThreadNum)

{

task = new Task(ThreadNum);

executor.execute(task);

}

}

class Task extends Thread

{

private int ThreadNum;

Task(int temp)

{

ThreadNum=temp;

}

public void run() {

System.out.println("当前执行了:"+ThreadNum);

try {

Random random=new Random();

int sleep=random.nextInt(8)+2;

System.out.println(ThreadNum+">>停止"+sleep+"秒");

Thread.sleep(sleep*1000);

} catch (InterruptedException e) {

System.out.println("执行过程中出现县城暂停异常"+e);

}

System.out.println(ThreadNum+">>执行完成");

System.gc();

}

}

执行结果如下:

当前执行了:2

当前执行了:3

当前执行了:1

2>>停止4秒

3>>停止8秒

1>>停止4秒

当前执行了:4

当前执行了:5

5>>停止3秒

4>>停止4秒

5>>执行完成

1>>执行完成

2>>执行完成

当前执行了:6

6>>停止9秒

当前执行了:8

8>>停止6秒

4>>执行完成

当前执行了:7

7>>停止7秒

当前执行了:9

9>>停止9秒

java 线程池 hash_java线程池实例 - Hashsound的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. java 羽化_JAVA10来了 - 羽化布凉的个人空间 - OSCHINA - 中文开源技术交流社区

    Java 9才发布几个月,很多玩意都没整明白,现在Java 10又要来了. 这时候我真想说:线上用的JDK 7,甚至JDK 6,而JDK 8 还没用熟,JDK 9 才发布不久不知道啥玩意,JDK 10 ...

  2. java动态变量名反射_Java动态性—反射 - Eclipse666的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.什么是动态语言? 程序运行时,可以改变程序的结构或者变量类型:如Python,javaScript function(){ var s="var a=3;var b=4;" e ...

  3. 利用mysql建立随机森林_随机森林算法实例 - osc_4imme0wh的个人空间 - OSCHINA - 中文开源技术交流社区...

    根据成年人数据集来预测一个人的收入 1.准备数据集 我下载好了一个成年人数据集,从百度云下载 链接:https://pan.baidu.com/s/10gC8U0tyh1ERxLhtY8i0bQ 提取 ...

  4. java io 读取配置文件_java读取配置文件 - tomzhao2008的个人空间 - OSCHINA - 中文开源技术交流社区...

    对于要打包成jar文件来运行来说,用file是会有问题的,下面的程序可以解决这样的问题 1.ReadPropsUtil /** * */ package readproperties; import ...

  5. java中0l 1_Java基础笔记1 - osc_0ltyoebk的个人空间 - OSCHINA - 中文开源技术交流社区...

    java 1.一元运算符:只需要一个数据就可以进行的运算符.例如 取反 ! 自增 ++ 自减-- 2.二元 运算符 :需要两个数据才可以进行操作的运算符,例如: 加法 + ,赋值 = 3.三元运算符 ...

  6. java中PL层_安装pljava - RuralHunter的个人空间 - OSCHINA - 中文开源技术交流社区

    pljava是pgsql跟java的桥接,安装以后就可以在pgsql里面调用java了.这里记录一下我在ubuntu server下安装的过程 1. 下载源码编译 很简单,下载,解压,设置一下JAVA ...

  7. java枚举变量带括号_java枚举类型 - 墨梅的个人空间 - OSCHINA - 中文开源技术交流社区...

    public class TestEnum { /*最普通的枚举*/ public enum ColorSelect { red, green, yellow, blue; } /* 枚举也可以象一般 ...

  8. java脚本项目_java项目部署脚本 - xixingzhe的个人空间 - OSCHINA - 中文开源技术交流社区...

    #!/bin/sh #java export JAVA_HOME=/root/java/jdk #日志目录 export LOG_HOME=`pwd`/ #项目名称 APP_NAME=xxx.jar ...

  9. java 图形 登录_java登录图形界面 - osc_994n5tsc的个人空间 - OSCHINA - 中文开源技术交流社区...

    编写程序,利用JtextField和JpasswordField分别接收用户输入的用户名和密码,并对用户输入的密码进行检验.对于每个用户名有三次密码输入机会. package beizi; impor ...

  10. java 递归死循环_Java递归 - 感觉太煽情的个人空间 - OSCHINA - 中文开源技术交流社区...

    树节点类: package cn.com.tree; public class Node { private Integer id; private Integer parentId; private ...

最新文章

  1. 我司那产品经理丨第一期
  2. CG CTF WEB 密码重置
  3. HTML源码-网页123算数题小游戏源码
  4. 【LeetCode】剑指 Offer 45. 把数组排成最小的数
  5. Android 一个漂亮的Android日期和时间选择器:DateTimePicker
  6. wos 文献被引_全世界最权威的文献检索工具,这6个检索技巧必须要掌握!
  7. Python+Selenium+Edge浏览器安装与简单运行(1/2)
  8. Sun发布MySQL 5.4 响应速度提升90% ?
  9. 电视直播源码2.0-全站HTML文件
  10. 企业微信api接口,企业微信sdk
  11. mysql数据库安装(详细)
  12. 用英雄联盟的方式讲解JavaScript设计模式
  13. 华为手机什么时候更新鸿蒙系统_华为鸿蒙2.0系统什么时候可以用 华为鸿蒙2.0系统升级方法介绍[多图]...
  14. 今日头条推荐算法原理 - 梳理
  15. 全文检索(elasticsearch入门)
  16. 3d稀疏卷积——spconv源码剖析(三)
  17. 网络爬虫python实例视频-Python网络爬虫实例教程 视频讲解版
  18. 研究生体检色弱计算机专业,考研体检,轻度色弱会不会被刷
  19. 378. 骑士放置——最大独立集+匈牙利算法
  20. 解决流氓软件布丁桌面、布丁压缩、值购助手、智能云输入法、蒲公英wifi、柚子壁纸、麦家购物助手反复安装

热门文章

  1. bzoj1835基站选址(dp+线段树)
  2. CAS(Compare and Swap)理解
  3. PPT设计的数据图表化表现
  4. 自己写的一个分享按钮的插件(可扩展,内附开发制作流程)
  5. 推行ISO9000的作用及相关知识
  6. 用 CSS 实现 Firefox 和 IE 都支持的半透明效果
  7. 拓端tecdat:R语言GARCH建模常用软件包比较、拟合标准普尔SP 500指数波动率时间序列和预测可视化
  8. 拓端tecdat|使用R语言进行多项式回归、非线性回归模型曲线拟合
  9. 拓端tecdat|R语言在BRFSS数据中可视化分析探索糖尿病的影响因素
  10. hibernate教程笔记7