1 import java.util.concurrent.ExecutorService;
2 import java.util.concurrent.Executors;
3
4 /**
5 * Description:定长线程池Demo
6 *
7 * @author baozikengutou
8 */
9 public class Test2 {
10
11 public static void main(String[] args) {
12
13 // 创建固定长度线程池
14 ExecutorService fixedThreadPool = Executors.newFixedThreadPool(4);
15 for (int i = 1; i < 41; i++) {
16 final int index = i;
17 fixedThreadPool.execute(new Runnable() {
18
19 @Override
20 public void run() {
21 try {
22 System.out.println("================>线程:" + index + "\n");
23 Thread.sleep(1000 * 3);
24 } catch (InterruptedException e) {
25 e.printStackTrace();
26 }
27 }
28 });
29 }
30 }
31 }

输出结果:

================>线程:1

================>线程:4

================>线程:3

================>线程:2

================>线程:5

================>线程:8

================>线程:7

================>线程:6

================>线程:9

================>线程:10

================>线程:11

================>线程:12

================>线程:13

================>线程:15

================>线程:14

================>线程:16

================>线程:17

================>线程:19

================>线程:18

================>线程:20

================>线程:21

================>线程:23

================>线程:24

================>线程:22

...

定长线程池Demo的更多相关文章

  1. java线程池之newFixedThreadPool定长线程池

    newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待. 线程池的作用: 线程池作用就是限制系统中执行线程的数量.     根 据系统的环境情况,可以 ...

  2. 定长内存池之BOOST::pool

    内存池可有效降低动态申请内存的次数,减少与内核态的交互,提升系统性能,减少内存碎片,增加内存空间使用率,避免内存泄漏的可能性,这么多的优点,没有理由不在系统中使用该技术. 内存池分类: 1.      ...

  3. java写的简单通用线程池demo

    首先声明,代码部分来自网络. 1.入口DabianTest: package com.lbh.myThreadPool; import java.util.ArrayList; import java ...

  4. 线程池demo

    package test; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callabl ...

  5. Java多线程(四) 线程池

    一个优秀的软件不会随意的创建.销毁线程,因为创建和销毁线程需要耗费大量的CPU时间以及需要和内存做出大量的交互.因此JDK5提出了使用线程池,让程序员把更多的精力放在业务逻辑上面,弱化对线程的开闭管理 ...

  6. Java-----关于线程池的使用

    关于线程的相关概念不在此阐述,请百度或谷歌之 对于学习线程来说,我认为从代码开始学习比较好,前提是有一定的技术的积累,否则请关闭不用再看了~ 线程池四种实现方式. ①可缓存线程池,如果线程池长度超过处 ...

  7. java多线程(三)-Executors实现的几种线程池以及Callable

    从java5开始,类库中引入了很多新的管理调度线程的API,最常用的就是Executor(执行器)框架.Executor帮助程序员管理Thread对象,简化了并发编程,它其实就是在 提供了一个中间层, ...

  8. Java 使用new Thread和线程池的区别

    本文转至:https://www.cnblogs.com/cnmenglang/p/6273761.html , 孟凡柱的专栏 的博客,在此谢谢博主! 1.new Thread的弊端执行一个异步任务你 ...

  9. Java线程池实现

    电脑的CPU资源是有限的,任务的处理速度与线程数量之间并不是正相关.当线程数量过多,CPU要频繁的在不同线程切换,反而会引起处理性能的下降.线程池中最大的线程数,是考虑多种因素来事先设定的,比如硬件的 ...

  10. 线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式

    1. 通过Executors创建线程池的弊端 在创建线程池的时候,大部分人还是会选择使用Executors去创建. 下面是创建定长线程池(FixedThreadPool)的一个例子,严格来说,当使用如 ...

随机推荐

  1. exp1-Password engine-加密API实现与测试

    加密API实现与测试 181210 1.准备工作 下载并查找GMT 0018-2012密码设备应用接口规范原始文档进行学习. 2.实现GMT 0018-2012接口函数 实现GMT 0018-2012 ...

  2. JavaScript基本知识整理(基本包装类型)

    基本包装类型 为了方便地操作基本类型变量,ECMAScript规定了3个特殊引用类型分别是Boolean,Number和String. 这三种特殊引用类型同时具有基本类型和引用类型的功能,当我们读取一 ...

  3. bootstrap table表格按钮

    1 <body> 2 3 <form action="" method="POST" class="form-horizontal& ...

  4. 【当年笔记】集合之Map

    Map 常用的实现类如下: Hashtable :Java 早期hash类,线程安全,不支持 null 键和值,因为它的性能不如 ConcurrentHashMap,所以基本不用. HashMap : ...

  5. faker函数造数据

    from faker import Fakerimport timeimport datetimet = time.time()import random# fake= Faker()# fake.n ...

  6. ubuntu 删除容器内没用的包

    删除多余 apt 包 这些就是依赖的所有动态链接库,接着我们将这些包用 apt-mark 声明为"手工安装的包",即可阻止 apt purge 的自动卸载. 然后,我们再自动卸载其 ...

  7. MyBatis(Plus) 打印SQL, 分析执行时间

    MyBatis/MyBatis Plus打印的SQL调试起来比较麻烦 当然IDEA/eclipse都有类似mybatis log plugin这种插件来解析, 但是安装插件有些许弊端, 就写了个工具类 ...

  8. 日志服务器 nagios log server

    官网 https://www.nagios.com/products/ 可官网下载手动安装也可命令安装 命令安装 cd /tmp wget https://assets.nagios.com/down ...

  9. nginx日志按日期存储

    http {     include       mime.types;     default_type  application/octet-stream;     map $time_iso86 ...

  10. pytest设计项目结构

    api目录封装所有的接口 testcases目录写所有的测试用例.conftest全局登录前置操作 data目录测试数据 common或者utils目录.存放公共模块比如读取yml文件.连接数据库.所 ...