进程与线程常常会放到一块儿说起,无论是学习linux、python仍是其余语言,进程和线程都会用到,那么他们之间有什么练习和区别呢?今天小猿圈加加就说一下他们之间的关系。python
1、定义linux
进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操做系统结构的基础。它的执行须要系统分配资源建立实体以后,才能进行。多线程
线程(Threading):也叫做轻量级进程,是一个基本的CPU执行单元,也是程序执行过程当中的最小的单元。线程的特色就是在不须要独立资源的状况下就能够运行。并发
2、功能学习
每个程序都至少有一个线程,若程序只有一个线程,那么就是程序自己。操作系统
单线程的进程能够简单的认为只有一个线程的进程。线程
一个进程在同一时间只作一件事,有了多线程后一个进程同一时间能够作多件事。对象
每一个线程能够处理不一样的事务。进程
不管系统有几个CPU,即便进程运行在单CPU上,多线程也能够是进程并发处理多个事务。事务
一个线程阻塞不会影响到另外一个线程。
多线程的进程能够尽量的利用系统CPU资源。
但也不是线程越多越好,线程越好,CPU分配给每一个线程的时间片就越少。
进程在执行过程当中拥有独立的内存单元,而同一个进程中的多个线程共享内存,拥有本身的栈空间,拥有独立的执行序列。分配资源时的对象必须是进程,不会给一个线程单独分配系统管理的资源。
进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,多进程环境中,任何一个进程的终止,不会影响到其余进程。而线程只是一个进程中的不一样执行路径。线程有本身的堆栈和局部变量,但线程之间没有单独的地址空间,线程间是彼此依存的。多线程环境中,父线程终止,所有子线程被迫终止(没有了资源)。
进程和线程小编从定义和功能来讲他们区别,不了解他们区别的小伙伴,如今对进程和线程有了新的认识吧,想要深刻了解进程和线程,以及怎么建立线程,能够去小猿圈学习一下深层次的东西,但愿大家能够对操做系统有深刻的了解。