进程是程序在计算机上的一次执行活动,及正在运行中的应用程序,通常称为进程。当你运行一个程序,你就启动了一个进程。每个进程都有自己独立的地址空间(内存空间),每当用户启动一个进程时,操作系统就会为该进程分配一个独立的内存空间,让应用程序在这个地里的内存空间中运行。
在同一个时间里,同一个计算机系统中如果允许两个或两个以上的进程处于运行状态,这便是多进程,也称多任务。现代的操作系统几乎都是多任务操作系统,能够同时管理多个进程的运行。
多任务带来的好处是明显的,比如你可以边听mp3边上网,与此同时甚至可以将下载的文档打印出来,而这些任务之间丝毫不会相互干扰。
线程是一个轻量级的子进程,是最小的处理单元;是一个单独的执行路径。线程从属于进程。进程中包含一个或多个执行单元称为线程。进程还有一个私有的虚拟地址空间,该空间仅能被它所包含的线程访问。线程只能归属于一个进程。且它只能访问该进程所拥有的资源(运行时建立的变量、数据。。)
当操作系统创建一个进程后,进程会自动申请一个名为主线程或首要线程的线程。
一个进程至少有一个线程,否则操作系统就会杀掉这个进程。
多线程通常在一个程序中同时完成多个任务。即多段代码同时进行。
在单一线程虽然可以完成,但是多线程可以更快的完成的情况。如下载文件。
并发:多个线程"同时"与运行。但实际上只是我们感官上的一种表现。实际上是单一运行的。OS将时间划分为很多时间片段,并尽可能均匀的分配给每一个线程,只有获取时间片段的线程才被CPU运行,而其他线程全部等待,所以微观上是“走走停停”的,因为计算机运行速度非常快所以宏观上看上去是同时运行的。这种现象叫做并发,但不是真正的同时运行。
并行:当系统有一个以上的CPU时,则线程的操做有可能非并发。当一个CPU执行一个线程时,另一个CPU可以去执行另一个线程,两个线程互不抢占CPU资源,是真正意义上的同时进行,这种方式我们称之为并行(Parallel)。
原文:https://www.cnblogs.com/zqf-bczl/p/13721668.html