python-----多任务

python多任务实现

多任务概念
多任务:操作系统同时运行多个任务(“同时是几乎不可能的,因为任务数量大多数大于cpu核数”)。
并发:任务数多于cpu核数,操作系统各种调度算法,每个任务轮流调度,同一时刻,必有任务没有执行,但调度很快,看似“同时”执行
并行:任务数少于cpu核数,做到任务同时执行.

多任务实现—(线程)Thread方式实现
1.线程存在进程内
2.多线程操作全局变量,需要加同步锁(相同的锁),保证每个线程内任务执行完后,再交给其他线程操作
3.两个锁容易形成死锁,A锁—锁B ,B锁----锁A, 一环套一环。
4.锁的好处保证了数据的正确性,坏处则降低效率,多线程操作相当于单线程操作.

多任务实现—(进程)Process方式实现
1.进程:操作系统中正在运行的程序简称为进程
2.主进程中可以开启子进程,子进程除了进程ID号与主进程不同,其他所有均相同
3.线程存在于进程中,每个进程至少有一个线程,这个线程为主线程
4.进程负责开辟准备工作,真正干活的还是线程
5.主线程创建进程(子进程)
6.进程间通信包括:socket,硬盘文件,队列Queue(存在于内存,先进先出,设备内使用)

多任务实现—(协程)Gevent方式实现
1.协程:单线程中并发执行的多任务 成为携程.
2.协程的好处在于可以充分利用cpu,发现阻塞,则立即执行下个任务。
3.协程底层由yield关键字实现,greenlet可实现协程,greenlet是对yield的进一步封装,Gevent则是对greenlet的进一步封装,所以使用协程实现多任务时,则用Gevent实现。

进程、线程、协程 对比
1.协程存在于线程,线程存在于进程
2.进程负责开辟资源空间,线程是负责代码执行,所以线程才是真正干活的。
3.浪费系统资源比例:进程>线程>协程
4.效率比:进程<线程<协程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值