【多线程】应用Java多线程实例

本文探讨了如何使用Java实现多线程,包括继承Thread、实现Runnable接口以及有返回值的Callable接口。通过多线程解决后台处理时间过长导致的页面等待问题,阐述了线程与进程的关系,以及在实际项目中如何利用多线程优化性能。
摘要由CSDN通过智能技术生成

前段时间,为了应对项目中后台处理时间过长而导致的页面等待问题,于是采用了多线程的解决方式。这里好好总结一下,主要从多线程的实现、有返回值的多线程以及如何在多线程中注入spring的bean等方面来介绍一下。

其实对多线程并不陌生,但是成系统的搞一下多线程这个是需要研究很多东西的。一般来说,像我,就是从“进程和线程有什么区别”这种问题开始的。最初是为了准备面试,稀里糊涂的看,其实真正理解的内容不多也不深,等研究研究再回过头你就想明白了。

先说说,什么是多线程。多线程是指一个进程运行时产生了不止一个线程。这句话是我从网上扒来的,但把进程和线程的关系描述的很到位,最开始记得大家把进程比喻成是一列火车,而线程是火车上挂着的一节节车厢,一节车厢就是一个线程。要从更加专业的术语来解释线程和进程这个事情,有人会说“进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位”,而“线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位”“线程与同属一个进程的其他线程共享进程中所拥有的全部资源”。

这么说够专业,我估计你没有点儿基础,也看得云里雾里的,到最后也只能理解成我上面刚说的那样,“进程好比是一列火车,线程好比一节车厢”…….这里继续说一下我的理解,我把进程理解成一次完整的从页面到后台处理相关数据/逻辑再返回到页面的请求(当然可以是void),进程相对于线程而言概念更大一些,范围更广一些,而线程就是在上面进程中我任意封装的一小段具有一定逻辑意义的代码,就可以叫线程。比如我系统代码中的一个进程是我需要根据名称查询某商品价格,这是需要完整的从页面发起请求,带着参数到后台controller-ser

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值