码迷,mamicode.com
首页 > 编程语言 > 详细

python全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python理论知识,线程的创建)

时间:2018-05-15 20:57:22      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:def   apply   操作   进程   线程   syn   输出   信号量   理论知识   

昨日内容回顾

队列
    队列:先进先出、数据进程安全
    队列实现方式:管道+锁
    生产者消费者模型:解决数据供需不平衡
管道
    双向通信,数据进程不安全
    EOFError:
        管道是由操作系统进行引用计数的
        必须在所有进程中关闭管道后才能生成EOFError异常
数据共享(不常用)
    Manager
    list dict   数据进程不安全的
进程池
    存放进程的容器
    在进程创建之初,创建固定个数的进程
    会被多个任务循环利用
    节省了进程创建和销毁的时间开销
    降低了操作系统调度进程的压力
信号量和进程池的区别
    信号量:n个任务开启n个进程,
        但同一时间只能有固定个数的进程在执行
        进程在等待被执行
    进程池:n个任务开启固定个数的进程
        因此同一时间只能有固定个数的进程在执行
        任务在等待被执行  

队列是内置锁的,所以别的应用调用它,是安全的。

凡是涉及到手动加锁的,都是不安全的。常用的一般都是消息中间件

 

没有返回值的铅矿

close和join成对使用

import time
from multiprocessing import Pool


def wahaha(i):
    time.sleep(1)
    print(‘*‘ * i)


if __name__ == ‘__main__‘:
    p = Pool(5)  # 建议的数量是CPU核数+1
    for i in range(5):
        p.apply_async(func=wahaha, args=(i,))
    p.close()  # 不能再提交新的任务
    p.join()  # 等待池中的任务都执行完  

执行输出:

技术分享图片

 

python全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python理论知识,线程的创建)

标签:def   apply   操作   进程   线程   syn   输出   信号量   理论知识   

原文地址:https://www.cnblogs.com/Black-rainbow/p/9042623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!