讲述线程、进程和协成?
1)为什么引入:
操作系统可以同时运行多个任务,引入了线程,进程和协成
2)定义:
线程: 可以理解成执行代码的分支,线程是执行对应的代码的,cpu会调度对应的线程去工作,也可以说线程是cpu调度的基本单位(工作原理)
进程: 通俗理解一个运行起来的程序或者软件叫做进程
如何理解进程:把进程想成现实生活中的公司,公司可以给员工提供办公资源(办公桌椅,办公电脑等资源), 真正干活的是员工,所以员工可以想成线程,公司就是进程
协成:又称为微线程,也称为用户级线程,在不开辟线程的基础上完成多任务,在def里面只看到一个yield关键字可以理解程是协程(理解), 在单线程的基础上可以完成多任务,多个任务按照一定顺序交替执行(目的)
3)使用:
进程、线程和协成的使用对比
2.1 线程是cpu调度的基本单位,通过线程去执行进程中代码, 线程是执行代码的分支
2.2 进程是操作系统资源分配的基本单位,每启动一个进程都需要向操作系统索要运行资源,默认一个进程只有一个线程,线程是依附在进程里面的
2.3 多进程开发比单进程多线程开发稳定性要强,但是多进程开发比多线程开发资源开销要大
2.4 多进程开发某个进程死了不会影响其它进程的运行,但是多线程开发该进程死了那么这些线程都要进行销毁
2.5 进程之间不共享全局变量,线程之间共享全局变量,但是线程要注意资源竞争的问题
线程之间共享全局变量:
同步就是协同步调,按预定的先后次序进行运行线程同步可以解决共享全局变量的问题
从而