4.1.多线程&JUC-什么是多线程?

一.多线程的概述:

可以把"多线程"拆分为"多"和"线程"->

"多"表示很多,因此只需要知道什么是"线程"即可。

"线程"中包含了"进程"的概念,"进程"的概念如下:

一个软件运行之后,他就是一个进程。

线程的概念如下:

如上图,

比如一个软件360,360其中有很多独立的功能,

因此可以这么理解,360软件运行之后,它的本身是一个进程,而360的各个功能可以看作是多个线程,如下图:

因此可以把"线程"理解为应用软件中互相独立,可以同时运行的功能,

当同时运行的功能比较多时,就形成了多线程。


二.代码演示:

如上图的代码,

在运行的时候,CPU首先读取到第一行代码int a=10,那么在内存中就会创建一个变量a,但是内存中创建变量需要时间,那么在创建的过程当中CPU是无法继续运行下面的代码的,所以CPU只能先等着,假设创建a用了0.01秒,

然后开始运行第二行int b=20,内存中继续创建了变量b,同样的CPU也等了0.01秒,同理,第三行代码也等了0.01秒,第四行代码也等了0.01秒,

这个就是以前的代码的执行过程,以前的代码也叫做单线程程序,因为他是从头往下依次运行的,CPU不会切换到其他代码中运行,所以效率较低,

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

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


三.多线程的应用场景:

1.软件中比较耗时的操作:

拷贝、迁移大文件,通常使用多线程完成,因为如果使用单线程,在拷贝的过程当中就无法干其他事情,只能等待拷贝完毕,之后才能做其他事情,而且拷贝的内容往往比较多,会花费很多时间,一直等太浪费时间;

加载大量的资源文件,特别是在玩游戏的时候,点击游戏之后会加载游戏的资源文件,但是加载的同时我还想让游戏做其他的操作,比如播放游戏的背景音乐,此时就要用到多线程;

2.所有的聊天软件;

3.所有的后台服务器。


四.总结:

  • 多线程可以充分利用程序中等待的时间,让CPU在多个程序中进行切换,从而提高了程序的运行效率
  • 为什么要有多线程?就是为了当数据量过大时能高效处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值