目录
网络编程(下)
多线程的作用
站在两个角度去看问题:
==四个任务,计算密集型,每个任务需要10s:==
单核:
开启进程
消耗资源过大
4个进程:40s
开启线程
消耗资源远小于进程
4个进程:40s
多核:
开启进程
并行执行,效率比较高
4个进程10S
开启线程
并发执行,执行效率低
4个线程:40S
==四个任务,IO密集型,每个任务需要10s:==
单核:
开启进程
消耗资源过大
4个进程:40s
开启线程
消耗资源远小于进程
4个线程:40s
多核:
开启进程
并行执行,效率小于多线程,因为遇到IO会立马切换CPU的执行权限
4个进程:40s + 开启进程消耗的额外时间
开启线程
并发执行,执行效率高于多进程
4个线程:40s
==总结==:
在计算密集型的情况下;使用多进程.
在IO密集型的情况下;使用多线程
高效执行多个进程,内多个IO密集型的程序: 使用多进程+多线程
递归锁
(了解知识点)
RLOCK:与比喻成望能钥匙,可以提供给人们使用.
但是第一个使用的时候,会对该锁做一个引用计数.
只有引用计数为0,才能真正释放让另一个去使用
信号量
(了解知识点)
互斥锁:比喻成一个家用马桶
同时间只能让一个人去使用
信号量:比喻成公厕多个马桶.
同一时间可以让多个人去使用
线程队列
(了解知识点)
FIFO队列:先进先出
LIFO队列:后进先出
优先级队列:根据参数内,数字的大小进程分级,数字值越小,优先级越高(可参照ASCLL码表)