并发、并行、单线程、多线程的区别

并行和并发的区别

并发:指多个事情在同一时间段内同时发生。一个处理器可以同时处理多个任务,这是逻辑上的同时发生。
并行:指多个事情在同一时间点上同时发生。多个处理器同时处理多个不同的任务,这是物理上的同时发生。
 

并发:指同一时刻只能够执行一条指令,但是多条指令被快速的进行切换,给人造成了它们同时执行的感觉。但在微观来说,并不同同时进行的,只是划分时间段,分别进行执行。并发的多个任务之间是互相抢占资源的。

并行:在同一时刻,有多条指令在多个处理器上同时执行。并行的多个任务之间是不互相抢占资源的。

 

进程和线程

进程:进程是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个用用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。

线程:线程是进程的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程,也可以包含多个线程。

操作系统中可以拥有多个进程,一个进程里可以拥有多个线程,线程在进程内执行。

主线程:执行主方法的线程。JVM执行main方法,main方法会进入到栈内存,JVM会找操作系统开辟一条main方法通向CPU的执行路径,CPU就可以通过这条路径来执行main方法,这个路径就叫做main(主)线程。

单线程就是进程只有一个线程
多线程就是进程有多个线程
单线程:单线程在程序执行时,执行从main方法开始,从上到下依次执行。

单核心单线程:CPU在多个线程之间做高速切换,轮流执行多个线程

但是单线程如果出错就会出现中断,后续代码无法执行。

多线程:程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务.(下载电影的同时可以听歌),多个线程之间互不影响

4核心8线程:有8个线程,可以同时执行8个线程,8个线程在多个任务之间做高速切换,速度是单线程CPU的8倍(每个任务执行到的几率都被提高了8倍)

单线程和多线程区别(生活举例):
你早上上班,正要打卡的时候,手机响了。你如果先接了电话,等接完了,在打卡,就是单线程。
如果你一手接电话,一手打卡。就是多线程。两件事的结果是一样的。你接了电话且打了卡。
原文链接:https://blog.csdn.net/qq_32963927/article/details/102783394

 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值