Java EE:多线程 —— 什么是线程,线程与进程的区别

1、线程是什么

        一个线程就是一个 “执行流”。每个线程之间都可以按照顺序执行自己的代码,多个线程之间 “同时” 执行着多份代码。

举例说明:

        假设一家公司要去银行办业务,既要进行财务转账,又要进行福利发放,还得进行缴纳社保。 

        如果只有 张三 一个职员,无法一个人处理这么多业务,会耗费非常长的时间。为了业务能更快更好的办理,张三 叫来了两个好朋友 李四 王五,三个人分别负责一个事情,这样子就可以在同一时间更好的处理多项业务。自此就有了三个执行流共同完成任务,但他们本质上都是为了办理同一家公司的业务。  

        此时,我们就把这种情况称为多线程,三个人分别是一个线程。将一个大任务分解成不同的小任务,交给不同的执行流执行。其中 张三 主线程,因为 李四 王五 都是张三叫来的。

2、为什么要有线程

首先, “并发编程” 成为 “刚需”。

·单核 CPU 的发展遇到了瓶颈,想要提高算力,就需要多核 CPU。 而并发编程能更充分利      用多核 CPU 资源。

·有些任务场景需要 “等待IO” ,为了让 等待IO 的时间能去做一些其他工作,也需要用到并发    编程。

其次,虽然多进程也能实现 并发编程,但是线程比进程更轻量

·创建线程比创建进程更快

·销毁线程比销毁进程更快

·调度线程比调度进程更快

3、线程和进程的区别

·进程是包含线程的。每个进程至少有一个线程存在,即主线程

·进程和进程之间不共享内存空间。同一个进程的线程之间共享一个内存空间

·进程是系统分配资源的最小单位,线程是系统调度的最小单位

·一个进程挂了不会影响到其他进程,但是一个线程挂了,可能把进程中的其他线程一起带走

4、Java中的线程 和 操作系统线程 的关系

        线程是操作系统中的概念。操作系统内核实现了线程这样的机制,并且对用户层提供了一些API 供用户使用。(例如 Linux 中的 pthread 库)

        Java 标准库中的 Thread 类可以视为是对操作系统提供的 API 进行了进一步的抽象和封装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值