多进程

进程就是正在进行的一个程序或者任务,而负责执行任务的是CPU,执行任务的地方是内存。与程序相比,程序只是一堆代码而已,而程序运行时的过程才是进程;另外同一个程序执行两次就是两个进程了。

并发和并行

并发和并行都是’同时‘在工作,对于并发而言,是’伪并行‘,即看起来是同时运行,其实是频繁更换CPU执行的程序代码,加之中间延迟很小,从我们的视角来看感觉就像是程序在同时运行;并行计算才是真正的同时计算,仅有多核才能是心啊并行。

例子:你正在吃饭,电话响了

并发:放下筷子去接电话,接完电话然后继续吃饭

并行:一边接电话一边吃饭

多进程是并行计算,多线程是并发计算。

并行计算和分布式计算

分布式计算是一门计算机科学,它研究的是如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算综合起来的结果。


一:线程与进程

1.概念

线程:是程序执行流的最小单元,是系统独立调度和分配CPU(独立运行)的基本单位。

进程:是资源分配的基本单位。一个进程包括多个线程。

2.区别:

  • 线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。
  • 每个进程都有自己一套独立的资源(数据),供其内的所有线程共享。
  • 不论是大小,开销线程要更“轻量级”
  • 一个进程内的线程通信比进程之间的通信更快速,有效。(因为共享变量)

二:多线程与多进程

多线程:同一时刻执行多个线程。用浏览器一边下载,一边听歌,一边看视频,一边看网页。。。

多进程:同时执行多个程序。如,同时运行YY,QQ,以及各种浏览器。

三.并发与并行

并发当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。这种方式我们称之为并发(Concurrent)。

并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。

强烈注意:多核,多cup,多机是不同的概念。


最后是个人理解:

多线程就是打开多个浏览器的窗口,其中有的窗口加载比较慢,这时候我可以看另一个窗口的的文字材料,这样就是多个线程操作,互不影响,不然如果变成是依据单线程的话,就只能一次只做一件事情,类似于一个浏览器只能打开一个窗口一个tab的感觉,只能做一件事情!