线程和进程的关系
最近参加了一下华为的面试,发现有多原因导致自己的失败,所以决定把基础在重新学习下,能够让自己对计算机在有个深入详细的理解,下面先简单的介绍下线程和进程的关系,这个也是华为面试我的问题,但是回答的不是很理想。
我们先来看下进程的定义,比较经典的定义有:
1,进程是程序的一次执行
2,进程是一个程序及其数据在处理机上顺序执行时所发生的活动
3,进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
所以传统OS的定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单元
在来看下线程:
线程是为了减少程序在并发执行时所付出的时间开销,使OS有更好的并发性而引进的。
在多线操作系统中,进程可以有多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。
线程不拥有系统资源,他们可以同时执行进程中的地址代码,有一组CPU寄存器和堆栈。
线程是进程中一个执行单元
进程和线程的主要差别在于它们是不同的操作系统的资源管理方式,进程有独立的地址空间,一个进程崩溃后,在保护模式不会对其它进程影响,而线程只是一个进程中的不同的执行路径,线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉等于整个进程死掉。所以进程的程序要比线程的程序健壮,但在进程切换时消耗的资源较大
上面的内容能够回答出来我感觉就应该可以较好的回答了进程和线程的关系这个问题了。
后续我会在深入的理解进程和线程,会以学习笔记的方式记录到这里。以后方便查看。