linux进程与线程
多线程和多进程,无论在嵌入式领域,还是应用开发领域,都是不可避免要设计和使用的。 本套视频教程将从实践的角度带你深入理解什么是线程,什么是进程。如何更好的使用好多线程和多进程。
课程目标:深刻理解什么是进程
进程是资源的分配单位,有自己独立的虚拟空间。线程是执行单位,和进程里的所有线程共享虚拟空间。
课后作业:用自己的语言来描述什么是进程。
进程和线程各自优缺点
1.进程的优点
1)健壮性比线程好;
2)由于进程间各自互相独立,所以如果多进程程序设计,当有一个进程挂掉的时候,不会影响其他进程的执行。
2.进程的缺点
1)创建进程比创建线程会消耗更多的系统性能;
2)由于进程创建需要系统分配更多的资源,所以创建会更加复杂;
3)进程间的通信比线程间的通信要复杂;
4)进程间的通信,如消息队列,共享内存,信号量,socket等,通信非常的复杂,而线程共享虚拟内存,可以直接访问全局变量。
进程与线程的区别
1.从形态角度
一个进程可包含一个或多个线程
2.从调度角度
1)进程是资源分配的基本单位;
2)线程是处理器调度的独立单位。
3.从虚拟化角度
1)进程提供两种虚拟机制
虚拟处理器:进程独享处理器的假象;
虚拟内存:进程拥有系统内所有内存资源的假象。
2)线程之间可共享虚拟内存,但各自拥有独立虚拟处理器。
【本文由麦子学院独家原创,转载请注明出处并保留原文链接】