多进程和多线程的对比-2018-03-29

进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位
线程:
主线程会等待所有的子线程结束后才结束,当线程的run方法结束时该线程完成
多线程程序的执行顺序是不确定的
在一个进程内的所有线程共享全局变量,完成多线程之间的数据共享
线程对全局变量的改变可能造成数据混乱(即线程非安全)

功能:
进程和线程都能够完成多任务

不同:
一个程序只有一个进程,一个进程至少有一个线程
进程执行任务时有独立的内存,而多线程共享内存,提高程序的效率
线程不能独立执行,必须依存在进程中

优缺点:
线程资源占有少,但是不利于资源的管理和保护
进程资源占有多,利于资源的管理和保护

选择:
进程的选择:
计算密集型:
1.视频的解码,编码
2.科学数据的计算
工作需要依赖CPU,建议进程的数量等于CPU的数量
线程的选择:
IO密集型:
1.web
2.文件的读写
IO经常阻塞,速度远小于CPU的速度,可以多线程进行,有线程阻塞了,其他线程依然正常工作

你可能感兴趣的:(多进程和多线程的对比-2018-03-29)