1.进程:
进程是具有一定独立功能的程序关于某个数据集合上的一次进行活动,是系统进行资源分配和调度的一个独立单位。
2.线程
线程是进程的一部分,是cpu调度和分派的基本单位,是比进程更小的能够独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源。
区别:
1.首先是一对多的关系,一个线程只能属于一个进程,而一个进程拥有多个线程。一个进程至少包含两个线程。
2.进程是系统进行资源分配和调度的一个独立单位。线程是进程的一部分,是cpu调度和分派的基本单位.
3.同一进程下的不同的多个线程,共享父进程的地址空间。
4.线程在执行过程中,需要协助同步,不同进程的线程间要利用消息实现同步。进程之间互不影响,是独立的,每个进程占有独立的地址空间。
5.线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
进程的优点:
1.每个进程互相独立,不影响主程序的稳定性,子进程奔溃不影响其他进程
2.通过增加cpu,扩充性能。
3.可以尽量减少线程加锁与解锁的影响,极大的提高了性能。
进程的缺点:
1、逻辑控制复杂,需要和主程序交互。
2、多进程调度开销大
线程的优点:
1、程序逻辑和控制方式简单。
2、所有线程可以直接共享内存和变量等。
3、线程方式消耗的总资源比进程方式少
线程的缺点:
1、每个线程和主程序共用地址空间,最大内存地址受限。
2、线程之间的同步和加锁不易控制。
3、一个线程的崩溃可能影响到整个程序的稳定性。