进程与线程的区别
概念
进程(process) 是资源分配的最小单位。
线程(thread) 是程序执行的最小单位。
其中资源包括CPU、内存等,一个进程可以由很多个线程组成,线程之间共享该进程的所有资源,每个线程有自己独立的堆栈和局部变量。
通信
线程之间的通信:共享局部变量
进程之间的通信:IPC通讯的方式
多任务(多线程与多进程)
多任务主要考虑两个因素:
1.任务数量:无论是多线程还是多进程,只要任务数量达到一定程度效率都会下降(切换需要占用一定的资源)
2.任务类型:计算密集型vsIO密集型
计算密集型:主要消耗CPU资源,针对多核CPU采用多进程更能有效利用资源
IO密集型:主要时间用来等待IO操作完成,如网络、文件操作。多线程效率更高