多线程实现方式

多线程的实现方式有哪些?

1、继承Thread类,重写run方法来实现多线程

2、继承Runnable接口实现多线程

重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target

3、通过Callable 和 FutureTask创建线程

3.1 创建Callable接口的实现类 ,实现它的Call方法

3.2 使用FutureTask类来包装Callable对象,这个FutureTask对象需要封装Callable对象的Call方法的返回值

3.3 使用FutureTask对象作为Thread对象的target创建并调用start方法启动线程

 4、通过线程池实现多线程

而线程池的实现方式有哪些?

首先是jdk自带的继承自Executor实现多线程的四个api

 newCachedThreadPool(缓存线程池)

newFixedThreadPool(可定长度线程池)

newScheduledThreadPool(可定时线程池)

newSingleThreadExecutor(单例线程池)

而我们一般不使用这几种方式去创建线程池,为什么呢?

首先我们要知道他们的底层是怎么实现的

 可以看到底层都是实现ThreadPoolExecutor的构造方法来构建ThreadPoolExecutor对象。

newCachedThreadPool而他的队列长度被默认设置int类型最大长度的线程数量,会导致cpu飙升问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值