【Java】什么是多线程?

一、引入

多线程这三个字可以拆开进行理解。

  • 多:数量词,表示很多的意思。

因此我们只需要知道什么是线程就行了。

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

线程的概念非常的拗口,而且在里面还有一个专业名字:进程

因此我们先来解释什么是进程,再回头解释上面这句话。

进程是程序的基本执行实体。

例如打开任务管理器,在任务管理器的第一个界面中,就是进程。

看下面,每一个软件都对应着一个进程。因此进程可以这么理解:一个软件运行之后就是一个进程。

例如 IDEA的进程Typora的进程

image-20240506124420250

知道什么是进程后,再回过头来看进程的概念。

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

例如360,在360里面是有很多很多功能的,因此我们可以这么去理解:360运行后,它的本身是一个进程,而360里面的木马查杀、电脑清理、系统修复、优化加速,我们就可以将它们看做是4个线程。

image-20240506124854903

因此关于线程可以简单理解:线程就是应用软件中互相独立的,又可以同时运行的功能。

像这种互相独立的,又可以同时运行的功能比较多,就形成了多线程。

那么多线程有什么用呢?


二、单线程和多线程的区别

1)单线程

例如下面代码,在运行的时候,CPU首先读到了第一行代码,此时在内存中就会创建一个变量 a,但是内存中创建变量是需要时间的,虽然说这个时间很短很快,但是它也要时间。

在创建的过程中CPU是没有办法运行下面的代码的,所以CPU只能先等着,假设CPU等了 0.01秒,然后再去读第二行。

内存中创建了一个变量 b,同样的在这一行CPU也等了0.01秒,同样第三行也等了0.01秒,第四行也等了0.01秒,这个就是以前代码的执行过程。

以前的代码我们也叫做 单线程程序,因为它是从上往下依次运行的。

CPU不会切换到其他代码去运行,所以它的效率会比较低。

image-20240506125334906

那么多线程的程序是怎么样运行的呢?


2)多线程

多线程的特点就是能同时的去做多件事情,CPU可以在多个程序间进行切换,把等待的空闲时间充分利用起来,这就是多线程最大的特点:提高程序的运行效率。

在实际开发中,多线程无处不在。


三、多线程的应用场景

例如:拷贝、迁移大文件。加载大量的资源文件…

image-20240506125749063

四、总结

1、什么是多线程?

其实我们不需要去背那些拗口的概念,我们只需要知道:有了多线程后,我们就可以让程序同时做多件事情。

2、多线程的作用?

充分利用程序中的等待时间,让CPU在多个程序之间进行切换,从而提高了程序的运行效率。

3、多线程的应用场景?

它的场景有很多,但有一个辨别套路:只要你想让多个事情同时运行就需要用到多线程。

例如:软件中的耗时操作、所有的聊天软件、所有的服务器…

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值