博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于JUC线程池的使用ExecutorService
阅读量:2048 次
发布时间:2019-04-28

本文共 1163 字,大约阅读时间需要 3 分钟。

基于JUC线程池的使用ExecutorService

往往采用多线程目的都是为了提高程序效率,提高系统使用性。但是频繁的创建和销毁线程本身就是一个有损效率的事。所以java的JUC就提供了线程池的使用。

线程池 :提前创建好多个线程放入线程池中,使用时直接获取,使用完成放回线程池。可以避免频繁创建和销毁线程,实现重复利用。
好处:

  • 提高了响应效率(减少了创建线程时间)
  • 降低资源消耗(重复利用线程池里面线程,不再是创建)
  • 便于管理。
    corePoolSize : 核心池大小
    maximumPoolSize : 最大线程数
    keepAliveTime :线程没有任务多久后会停止

JDK5.0起提供了相关线程池API : ExecutorsExecutorService

ExecutorService真正的线程池接口,继承了Executor

常见的实现类 ThreadPoolExecurtor。

  • void executor(Runable runable) 线程池启动线程。(属于Executor类方法)
  • void shutdown() 关闭连接池(ExecutorService接口方法)
    Executors 工具类、线程池的工厂类,用于创建并返回不同类型的线程池。注意区分Executor

在这里插入图片描述

实现步骤

  1. 创建线程池服务
  2. 执行线程

实现:

// 线程类    static class ThreadTest implements Runnable{
public void run() {
System.out.println(Thread.currentThread().getName()+":执行了"); } } // 执行类 public static void main(String[] args) {
// 创建线程服务,构造线程池为3 ExecutorService executorService = Executors.newFixedThreadPool(3); // 启动线程 executorService.execute(new ThreadTest()); executorService.execute(new ThreadTest()); executorService.execute(new ThreadTest()); executorService.execute(new ThreadTest()); }

结果:定义了线程池为3,则4个线程使用线程池中的3个线程。

在这里插入图片描述

转载地址:http://tjhof.baihongyu.com/

你可能感兴趣的文章
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>
python中xrange和range的异同
查看>>
列表、元组、集合、字典
查看>>
【Python】easygui小甲鱼
查看>>
【Python】关于Python多线程的一篇文章转载
查看>>
【Pyton】【小甲鱼】文件
查看>>
【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
查看>>
【Pyton】【小甲鱼】异常处理:你不可能总是对的
查看>>
APP性能测试工具
查看>>
【Pyton】【小甲鱼】类和对象
查看>>
压力测试工具JMeter入门教程
查看>>
作为一名软件测试工程师,需要具备哪些能力
查看>>
【Pyton】【小甲鱼】类和对象:一些相关的BIF(内置函数)
查看>>
【Pyton】【小甲鱼】魔法方法
查看>>
单元测试需要具备的技能和4大阶段的学习
查看>>
【Loadrunner】【浙江移动项目手写代码】代码备份
查看>>
LoadRunner中获取当前系统时间方法
查看>>