学习APUE,对于进程与线程也有了一些认识,从《程序员面试宝典》第三版中,摘录关于两者区别的面试题,供自己学习使用。
面试例题1: 请描述进程和线程的差别。
进程是程序的一次执行。线程可以理解为进程中执行的一个程序片段。在一个多任务环境中,下面的概念可以帮助我们理解两者的差别。
进程间是独立的,这表现在内存空间,上下文环境上;线程运行在进程空间内,一般来讲(不使用特殊技术),进程无法突破进程边界存取其他进程内的存储空间。而线程由于处于进程空间内,所以同一进程所产生的线程共享同一内存空间。
同一进程中的两端代码不能同时执行,除非引入线程。
线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出和清除。线程占用的资源少于进程所占用的资源。进程和线程都可以有优先级。