zoukankan      html  css  js  c++  java
  • 每日作业 4/23

    # 今日作业

    整理今日内容到博客

    描述知识点一定要用自己的话术概括,不要死记硬背!!!

    把知识点理解了,再去用自己语言组织说出来即可

    手动书写生产者消费者代码

    from multiprocessing import Process,JoinableQueue
    import time,random,os
    def consumer(q):
        while True:
            res=q.get()
            time.sleep(random.randint(1,3))
            print('%s 吃 %s' %(os.getpid(),res))
            q.task_done()  
    
    def producer(name,q):
        for i in range(1,4):
            time.sleep(random.randint(1,3))
            res='%s%s' %(name,i)
            q.put(res)
            print('%s 生产了 %s' %(os.getpid(),res))
    
    
    if __name__ == '__main__':
        q=JoinableQueue()
        p1=Process(target=producer,args=("包子",q,))
        p2=Process(target=producer,args=("骨头",q,))
    
        c1=Process(target=consumer,args=(q,))
        c2=Process(target=consumer,args=(q,))
    
        #开始
        p1.start()
        p2.start()
        p1.join()
        p2.join()
    
        c1.daemon=True   #设置守护进程
        c2.daemon=True
        c1.start()
        c2.start()
    
        q.join()
        print('')
    
    """
    执行结果:
    16120 生产了 包子1
    6380 生产了 骨头1
    16120 生产了 包子2
    6380 生产了 骨头2
    16120 生产了 包子3
    6380 生产了 骨头3
    9264 吃 包子1
    1852 吃 骨头1
    9264 吃 包子2
    1852 吃 骨头2
    9264 吃 包子3
    1852 吃 骨头3
    主
    """

    思考:如何实现TCP服务端并发的效果

    可以将通信循环放到函数中,通过Process创建进程

    import socket
    from multiprocessing import Process
    
    phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    phone.bind(("127.0.0.1",9000))
    phone.listen(5)
    
    def connect_server(conn,addr_port):
        while True:
            try:
                data=conn.recv(1024)
                if not data:break
                conn.send(data.upper())
            except Exception:
                break
    
    if __name__ == '__main__':
        while True:
            conn,addr_port=phone.accept()
            p=Process(target=connect_server,args=(conn,addr_port,))
            p.start()
  • 相关阅读:
    字符串 date 转标准 yyyyMMdd 格式
    stringBuild置空方法
    composer 加速
    php7.0 Mongodb 查询
    PHP7 mongo 操作
    php 简单的对称加密
    PHP 百度关键字
    php redis 写入读取的两个class
    php ci 框架自定义函数
    app已损坏,打不开,你应该将它移动到废纸篓
  • 原文地址:https://www.cnblogs.com/baicai37/p/12762947.html
Copyright © 2011-2022 走看看