Python多任务总结

  1. 多任务
    什么是多任务
    同时做多件事件(做个多个任务),运行多个方法
    多任务的原理
    并发:假的多任务,时间片的轮转,快速的交替运行任务
    并行:真的多任务,一个核处理一个任务
    实现多任务的三种方式
    线程
    进程
    协程
  2. 线程
    概念:程序执行的最小单位,依赖于进程
    特点
    程序运行起来,就给它创建了一个主线程,等待子线程结束后再结束
    共享全局变量,通过args参数给线程传递数据
    从系统开销讲,进程>线程>协程
    互斥锁
    主要解决了资源竞争的问题
    使用互斥锁
    创建锁对象mutex=threading.Lock()
    获取锁 mutex.acquire
    释放锁 mutex.release
    死锁
    原因:两个线程都在等待对方释放锁
    解决方案:
    写代码设计的时候避免
    设置超时时间
    银行家算法
  3. 进程
    概念:它是代码和资源的集合,分配资源的最小单位,可以在任务列表中查看进程
    特点
    程序运行起来,就会给其创建一个主进程,等待子进程结束后,再结束
    进程调用start()方法后就进入了运行态
    写时拷贝处理数据,通过args给进程传递数据
    从系统开销讲,进程>线程>协程
    进程间通信
    作用:多个进程之间传递数据
    写法
    创建队列对象q=multiprocessing.Queue()
    一个进程给队列中放消息q.put()
    另一个进程从队列中去消息q.get()
    进程池
    为什么要用进程池?
    减少了创建、销毁进程的次数,从而提交效率
    原理
    一次性在进程池中创建多条进程,循环着去使用
    写法
    创建进程池po=multiprocessing.Pool()
    加入任务 po.aplay_async()
    关闭po.close
    应用场景
    任务比较多的时候
    不知道有多少个任务的时候
  4. 协程
    什么是可迭代对象
    一个普通的对象实现了iter内置函数
    什么是迭代器
    一个普通的对象实现了iternext内置函数
    迭代器的特点
    保存的是生成数据的方式,而不直接存储数据
    好处:节省系统空间
    什么是生成器
    它是一个特殊的迭代器
    yield
    一个普通的函数里面写了yield的话,他就是一个生成器模板
    执行函数遇到yield会阻塞
    调用next()或者send()会解阻塞
    利用yield做协程
    写多个函数,每个函数中都写yield,函数执行时遇到yield就会阻塞
    然后交替着题调用不同任务的next()方法,这样就用协程实现了多任务
    原理:
    利用线程的空闲时间去执行其他的任务
    特点:
    协程依赖于线程,线程依赖进程
    从系统开销讲,进程>线程>协程
    实现协程的三种方式
    yield next() send()
    greenlet
    gevent
    gevent.spawn(函数名).join()
    gevent.joinall([gevent.spawn(函数名)])
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容