新闻资讯

新闻资讯 媒体报道

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

编辑:013     时间:2021-07-20
并行和并发的区别

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

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

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

 
进程和线程

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

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

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

主线程:执行主方法的线程。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
————————————————
版权声明:本文为CSDN博主「歌者莫姓胡」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_50542009/article/details/117898636
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐