多进程、多线程实现多任务
多任务
多任务是指在同一时间内执行多个任务。
多任务的最大好处是充分利用CPU资源,提高程序的执行效率。
实现方式
并发
在一段时间内交替去执行多个任务。对于单核CPU处理多任务,操作系统轮流让各个任务交替执行。
并行(真正意义上的同时执行)
在一段时间内真正的同时一起执行多个任务。对于多核CPU处理多任务,操作系统会给CPU的每个内核安排一个执行的任务,多个内核是真正的一起同时执行多个任务。这里需要注意多核CPU是并行的执行多任务,始终有多个任务一起执行。
进程
进程(Process)是资源分配的最小单位,它是操作系统进行资源分配和调度运行的基本单位,通俗理解:一个正在运行的程序就是一个进程.例如正在运行的qq,微信等他们都是一个进程。
主进程默认会等待所有子进程执行结束后才会结束,可以通过设置子进程守护主进程实现主进程结束,子进程自动销毁。
线程
进程是分配资源的最小单位,一旦创建一个进程就会分配一定的资源,就像跟两个人聊QQ就需要打开两个QQ软件,一样是比较浪费资源的。
线程是程序执行的最小单位,实际上进程只负责分配资源,而利用这些资源执行程序的是线程,也就说进程是线程的容器,一个进程中最少有一个线程来负责执行程序.同时线程自己不拥有系统资源,只需要一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源.这就像通过一个QQ软件(一个进程)打开两个窗口(两个线程)跟两个人聊天一样,实现多任务的同时也节省了资源。
主线程默认会等待所有子线程执行结束后才会结束,可以通过设置子线程守护主线程实现主线程结束,子线程自动销毁。
进程和线程的对比
关系对比
1.线程是依附在进程里面的,没有进程就没有线程。
2.一个进程默认提供一条线程,进程可以创建多个线程。
区别对比
1.创建进程的资源开销要比创建线程的资源开销要大
2.进程是操作系统资源分配的基本单位,线程是CPU调度的基本单位
3.线程不能够独立执行,必须依存在进程中
优缺点对比
1.进程优缺点:
优点:可以用多核
缺点:资源开销大
2.线程优缺点:
优点:资源开销小
缺点:不能使用多核