java中线程的认识

1.线程是什么

线程定义是cpu执行任务的最小单元。也就是说,每当cpu执行任务时,就会有线程,但是线程的数量不确定。它是容纳任务动作的一个容器,当你将一整个任务都视为一个动作去启动,就如我们只在一个方法中完成我们所需要的操作,那么这就只有一个线程。当我们将整个任务的动作拆解,每个动作都为它创建不同的线程实现,最后组合就是多线程的方式。方法的调用不是多线程,它只不过是将整体某一个的动作放在另外的地方,最后这个动作仍然归属于调用它的那个方法。这就是为什么Thread类需要调用start()方法,而不是调用run()的方法。

2.线程的基本创建方式

1)继承thread类

2)实现runnable接口

3)实现callable接口

3)线程池

3.为什么使用线程

1)提高效率

多个人干活总比一个人干活快。在某些情况下,一个任务的动作是可以并行处理的,那么就可以分别使用一个线程去调用,然后组合结果。但是当每个动作耗时都很少,那就没有必要去使用多线程的方式了,这个对效率的提升不高,并且浪费了cpu资源。

2)异步调用

当这个任务需要多个系统通力合作,这个方法就需要调用不同的系统去完成某一个动作,但是这个方法又不在本地,就可以通过创建线程去调用。

4.如何使用

在我这种入门级的程序员来说,只有在完整的总系统中才会创建线程池,放置在配置中,以供各个子系统使用。当某一个方法需要简单的异步调用我会直接使用callable接口,这样比较快捷方便。当真正需要进行异步编排提高效率时,我会使用comparableFuture加上线程池来完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值