线程池的学习(感觉人不好了)

一 使用原因
每次使用完线程都要等待GC回收,但是GC自动回收得等到内存快满的时候,在这之前线程一直在占用内存.
二 线程的作用
1,管理线程的创建
2,线程的复用
3,线程的销毁
注意:线程池可以简单理解为存储线程的容器,也就是管理线程的类
三 体系
Executor(接口)
方法:execute(Runnable command);
作用:执行线程任务
ExecutorService(子接口)
方法:shutdown();
作用:关闭线程池
boolean isShutdown();
作用:判断线程池是否关闭
submit(Runable task);
作用:提交线程任务
ScheduledExecutorService(子接口)
scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit);
参数一:线程任务 参数二:延迟时间 参数三间隔时间 参数四:时间单位
注意:此处间隔时间指的是第二次任务开始时间减去第一次任务开始时间
如果第一次任务执行时间大于间隔时间,那么第一次任务结束就会马上开始第二次任务,中间将不再间隔!
scheduleWithFixedDelay(Runnable command,long initialDelay,long delay,TimeUnit unit);
参数一:线程任务 参数二:延迟时间 参数三间隔时间 参数四:时间单位
注意:此处间隔时间指的是第二次任务开始时间减去第一次任务结束时间
因此,本次就算第一次任务执行时间大于间隔时间也不影响
ThreadPoolExecutor(子类)
四 Executors
1,作用 创建线程池对象
2,方法
<1>创建可变线程池(线程数量不固定)
static ExecutorService newCachedThreadPool()
<2>创建固定线程池(线程数量固定)
static ExecutorService newFixedThreadPool(int nThreads)
参数:线程数量
<3>创建单例线程池(其中只有一个线程)
static ExecutorService newSingleThreadExecutor()
<4>创建调度线程池
static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
参数:线程池中线程数量
<5>创建单例调度线程池
static ScheduledExecutorService newSingleThreadScheduledExecutor()
五 线程池的使用
步骤
1.创建线程池
2.执行线程任务
3.关闭线程池

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值