线程池:

  背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大

  思路:提前创建好多个线程、实现重复利用。

  好处:提高响应速度,减少了创建新线程的时间;降低资源消耗,重复利用线程池中线程,不用每次都创建;便于线程管理

使用线程池:JDK5.0起提供了线程池相关API:ExecutorService和Executors

      ExecutorSevice:真正的线程池接口。常见子类 ThreadPoolExecutor

        void execute(Runnable cinnabd):执行任务/命令,没有返回值,一般用来执行Runnable

        <T>Future<T>submit(Callable<T>task):执行任务,有返回值,一般用来执行Callable

        void shutdown():关闭连接池

      Executors:工具类、线程池的工厂类,用于创建并返回不同类型的线程池

 1 package com.Cra2iTeT.Demo04;
2
3 import java.util.concurrent.ExecutorService;
4 import java.util.concurrent.Executors;
5
6 public class test {
7 public static void main(String[] args) {
8 ExecutorService service = Executors.newFixedThreadPool(10);
9
10 service.execute(new MyThread());
11 service.execute(new MyThread());
12 service.execute(new MyThread());
13 service.execute(new MyThread());
14
15 service.shutdown();
16
17 }
18 }
19
20 class MyThread implements Runnable{
21 @Override
22 public void run() {
23 System.out.println(Thread.currentThread().getName());
24 }
25 }

明天学习注解的基础知识,内置注解和元注解

Java学习day33的更多相关文章

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  3. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

  4. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  5. Java学习心得之 HttpClient的GET和POST请求

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...

  6. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  7. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  8. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  9. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

随机推荐

  1. 不借助 Docker Desktop 在Mac上开发容器应用

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 Docker Desktop是最为流行的开发者工具,Docker公司在 8/31 宣布对Docker Desktop的用户协议进行了变更,对个人 ...

  2. Java案例——日期工具类

    需求:定义一个日期工具类,包含两个方法,按日期转化成指定格式的字符串,把字符串解析为指定格式的日期 然后定义一个测试类测试 分析: 1.定义一个日期工具类 2.定义一个方法dateToString,用 ...

  3. Apache+PHP+Mysql安装手册(Windows)

    一,准备安装包 下载地址: Apache:HTTPS://www.apachelounge.com/download/ PHP:http://php.net/downloads.php MySQL h ...

  4. 磁盘管理--如何在VMware上给centos7增加一块磁盘

    一. 实验环境 VMware Workstaion + Centos7 二.实验步骤 1.关闭虚拟机,添加磁盘 2.添加硬件向导 硬件类型 你要安装哪类硬件? 点击完成观察到已经成功添加磁盘 3.开启 ...

  5. IIS短文件猜解

    1.IIS短文件漏洞 Microsoft IIS 短文件/文件夹名称信息泄漏最开始由Vulnerability Research Team(漏洞研究团队)的Soroush Dalili在2010年8月 ...

  6. vuex组成和原理?

    组成: 组件间通信, 通过store实现全局存取 修改: 唯一途径, 通过commit一个mutations(同步)或dispatch一个actions(异步) 简写: 引入mapState.mapG ...

  7. TreeMap与TreeSet的源码分析

    1.TreeMap源码 1.属性部分: private final Comparator<? super K> comparator;//比较器 private transient Ent ...

  8. Kafka 是如何实现高吞吐率的?

    Kafka是分布式消息系统,需要处理海量的消息,Kafka的设计是把所有的消息都写入速度低容量大的硬盘,以此来换取更强的存储能力,但实际上,使用硬盘并没有带来过多的性能损失.kafka主要使用了以下几 ...

  9. thrift源码分析

    1 前言 学习thrift源码主要为了弄清楚几个问题 thrift客户端和服务端的通信流程是如何的 thrift的IDL中给属性加上编号的作用是什么 thrift中require.optional和默 ...

  10. 数据分析之Numpy的基本操作

    Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1 创建 ndarray 使 ...