龙空技术网

进程、线程的概念、区别和联系;并发、并行概念、区别和联系

linux内核 351

前言:

现在你们对“进程instasm”大致比较注重,咱们都想要知道一些“进程instasm”的相关文章。那么小编同时在网摘上汇集了一些关于“进程instasm””的相关知识,希望各位老铁们能喜欢,小伙伴们快快来学习一下吧!

程序和进程(Process):

几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是指一个程序。程序和进程的主要区别:程序是一个静态的指令集合,进程则是正在系统中活动的指令集合。换句话说,运行中的程序就是进程。

进程具有三个重要的性质:独立性、动态性、并发性

独立性:经常在操作系统中独立存在,拥有独立的资源和私有的地址空间。没有经过进程自身允许,其它用户进程不能直接访问进程的地址空间。动态性:进程是运行中的程序,具有自己的生命周期和各种不同状态。并发性:多个进程可以在单个处理器上并发执行,互不影响。所谓并发(concurrency)指的是同一时刻只能执行一条指令,但多个进程可以快速的切换执行,使得宏观上具有多个进程同时执行的效果,这种交错执行称为上下文切换。并行(parallel)则指同一时刻有多条指令在多个处理器上同时执行

大部分操作系统都支持并发运行,一个CPU一个时间点只能运行一个进程,CPU一直不断的在进程之间轮换执行,由于CPU的计算速度很快,所以会给用户同时运行多个进程的错觉,如:听歌的同时在上网。进程过多后,就会明显感觉到执行速度的降低。

线程(Thread)和进程:

线程时进程的执行单元,又叫做轻量级进程(Lightweight Process)。线程在进程中的地位就像进程在操作系统中的地位一样。一个进程可以有多个线程,但一个线程只能有一个父进程。当进程被初始化后,就会创建一个主线程,通常大多数程序只要求有一个主线程,但也可以创建多个,线程之间是相互独立的。此外,线程作为进程的一部分,可以拥有自己的堆栈、程序计数器(标记下一步开始执行的位置)、局部变量,但不占有系统资源。进程内的多个线程共有进程的系统资源。线程共享的资源包括:进程代码段、进程的公有数据等,线程的调度和管理由进程本身负责。

归纳起来:一个操作系统可以同时执行多个任务,每个任务就是进程。进程可以同时执行多个任务,每个任务就是线程。

多线程由于可以共享内存、文件句柄、其它进程应有的状态、线程间隔离程度比进程小等优点,使得相对于多进程而言,程序的运行效率、资源的占用程度、并发的性能较好,因此多线程编程具有很大的优势,在实际编程中应用广泛。

标签: #进程instasm