什么是进程和线程?
个人理解:
进程是程序运行时资源分配的最小单位,相当于就是程序应用的一个执行活动,比如你运行一个程序,你就启动了一个进程,当电脑卡的时候我们可以点击电脑桌面最下面的任务管理器下面来结束掉无用的进程。
进程和进程之间都是相互独立存在的,进程依赖于应用程序。
线程是cpu调度的最小单位,它必须依赖于进程而存在,不能单独存在。
任何一个程序都必须创建线程。
做个简单的比喻:进程=火车,线程=车厢
CPU 核心数和线程数的关系
cpu核心数就是指电脑是几核的
线程数是同一时刻设备并行执行的程序个数
增加核心数目就是为了增加线 程数
个人理解的关系就是 cpu的核心数是一个个单独的运行空间,里面有很多很多线程。核心数越多能处理的线程也就越多。
CPU 时间片轮转机制
系统将所有的就绪进程按先来先服务算法的原则,排成一个队列,每次调度时,系统把处理机分配给队列首进程,并让其执行一个时间片。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序根据这个请求停止该进程的运行,将它送到就绪队列的末尾,再把处理机分给就绪队列中新的队列首进程,同时让它也执行一个时间片,时间片的时间一般为100ms左右
个人理解就是把进程有序的排成一个队列,先处理前面的进程,一段时间处理完了把处理完的放到队列的末尾,然后再执行排到前面的进程,依次反复执行。和排队打饭差不多。
并行和并发
并行:同时运行的用户数
举个简单的例子:如果有条高速公路 A 上面并排有 8 条车道,那么最大的并行车辆就是 8 辆,此条高速公路 A 同时并排行走的车辆小于等于 8 辆的时候,车辆就可 以并行运行。CPU 也是这个原理,一个 CPU 相当于一个高速公路 A,核心数或者线 程数就相当于并排可以通行的车道;而多个 CPU 就相当于并排有多条高速公路,而 每个高速公路并排有多个车道。
并发:单位时间内(不能脱离单位时间)允许运行的数量,离开了单位时间其实是没有意义的。
两者区别:并发是交替执行,并行是同时执行.