多线程和多进程,无论在嵌入式领域,还是应用开发领域,都是不可避免要设计和使用的。那什么是线程,什么是进程,他们之间有什么区别呢?
进程和线程各自优缺点
1.进程的优点
1)健壮性比线程好;
2)由于进程间各自互相独立,所以如果多进程程序设计,当有一个进程挂掉的时候,不会影响其他进程的执行。
2.进程的缺点
1)创建进程比创建线程会消耗更多的系统性能;
2)由于进程创建需要系统分配更多的资源,所以创建会更加复杂;
3)进程间的通信比线程间的通信要复杂;
4)进程间的通信,如消息队列,共享内存,信号量,socket等,通信非常的复杂,而线程共享虚拟内存,可以直接访问全局变量。
进程与线程的区别
1.从形态角度
一个进程可包含一个或多个线程
2.从调度角度
1)进程是资源分配的基本单位;
2)线程是处理器调度的独立单位。
3.从虚拟化角度
1)进程提供两种虚拟机制
虚拟处理器:进程独享处理器的假象;
虚拟内存:进程拥有系统内所有内存资源的假象。
2)线程之间可共享虚拟内存,但各自拥有独立虚拟处理器。