第三天 : 线程池的使用(面试)

今天面试遇到的是线程池的问题,完全不会,现在利用百度解决这个问题;

 

引入线程池的原因

由于线程的生命周期中包括,创建-就绪-运行-阻塞-挂机-结束 阶段,当我们处理的任务数目比较小的时候,我们可以自己创建几个线程来处理相应的任务,但是有大量的任务时,由于创建和销毁线程都需要很大的开销,运用线程池就可以大大的缓解这些内存开销很大的问题。

线程池的使用:

Executor类给我们提供了的静态方法,就可以创建相应的线程池:

public static executorService newSigleExecutor();
public static executorService newFixedThredPool();
public static executorService newCachedThreadPool();

 

newSignalExecutor()返回一个包含单线程的Executor,将多个任务交给Executor时,这个线程处理完一个任务后会接着处理下一个任务,若该线程出现异常,将会有一个新的线程来替代它

newFixedThreadPool()返回一个包含指定数目线程数的线程池,如果任务数量多于线程数目的话,那么没有执行的任务必须等待,直到任务完成为止

newCachedThreadPool()根据用户的任务数目创建相应的线程来处理,该线程池不会对线程的数目加以限制,完全依赖于虚拟机能创建的线程输入,但是可能会引起内存不足。

 

我们只需要将执行的任务放入run方法中即可,将runable接口的实现类交给线程池的execute方法,作为它的一个参数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值