day21线程与进程
种类
1、线程
2、进程
3、协程
引入
“alex甄嬛西游记”
分析:
1、进制和线程的目的;就是提高cpu执行效率2、上图中的alex可以是多个也可以是单个;这个就是cpu的内核。
3、进程就相当于内存
4、图中蓝色部分:GIL(全局解释器锁)
进程
资源的集合
进程的创建目的:
优点:就是利用cpu的多核。让cpu同时执行多个任务缺点:创建进程就相当于上面再创建个红框;也相当于重新开辟内存空间;会耗费资源
进程不是越多越好;最好的个数和cpu核数一样
线程
操作cpu的最小调度单位;是一串指令的集合
优点:共享内存;多个线程在一个进程;将会共享;进程里面的所有资源;IO操作能创作出并发的操作缺点:抢占资源;当同进程里面的线程;同时修改一个资源的时候。
线程也不是越多越好,具体案例具体分析。请求上下文切换;非常耗时。
总结:
进程和线程的目的:提高执行效率。
1、单进程和单线程<==>主进程和主线程2、自定义线程:
- 通过主线程创建子线程
3、在计算机里面;执行程序(任务)的最小单元是
线程
4、IO操作不用CPU
5、IO密集型(很多IO操作):适合用多线程
6、计算密集型:会用CPU;适合多进程7、进程与线程是没法比的:因为进程没办法自己运行;必须依赖线程
8、进程至少包含一个线程
9、当相同进程下的线程对统一个资源进行操作的时候;会报错!(原因是同时操作的时候;不知道以那个的结果为准)
10、进程和线程;谁启动快?答案是
线程快;以上面的例子为列;进程相当于造房子;线程相当于招人;可想而知;运行的时候是一样的;进程的运行必须靠线程。11、线程共享内存空间;进程的内存空间是独立的
12、一个线程可以控制和操作统一进程的其他线程;但是进程只能操作子进程
13、对于主线程的修改;可能会影响其他线程;应为它们共享嘛
14、但是对主进程的修改;却不会影响其他子进程;除非你
删除了主进程;因为它们是独立的嘛
浙公网安备 33010602011771号