• 作业


    1.协程的总结 明早抽查提问 答不上的五遍
      什么是协程

      让单线程可以并发处理的任务
      为什么需要协程

      因为cpython 由于GIL 导致同一时间只有一个线程再跑
      协程的使用场景

    2.使用协程完成TCP套接字编程 支持多客户端同时访问

    from gevent import monkey
    monkey.patch_all()
    import gevent
    import socket
    from threading import current_thread
    server  = socket.socket()
    server.bind(("127.0.0.1",9999))
    server.listen(5)
    
    def task(client):
        while True:
            try:
                data = client.recv(1024)
                if not data:
                    client.close()
                    break
                send_data = data.upper()
                client.send(send_data)
            except ConnectionResetError:
                print("%s客户端错误断开"%client,current_thread())
                client.close()
                break
    
    while True:
        client,addr =server.accept()
        gevent.spawn(task,client)

    客户端

    import socket
    
    client = socket.socket()
    client.connect(("127.0.0.1",9999))
    
    while True:
        msg = input(">>>").strip()
        if not msg:
            continue
        client.send(msg.encode("utf-8"))
        data = client.recv(1024)
        print(data.decode("utf-8"))

    3.什么是异步 什么是异步回调 为什么需要异步回调

    异步  

    提交任务不需要等待任务完成,就执行下一行

    指的是一种提交任务的方式。

     

    异步回调

    当任务或阻塞执行完成以后,在叫来其他函数继续执行

    为什么需要异步回调

     子进程帮助主进程完成任务  处理任务的结果应该交还给主进程

      

  • 相关阅读:
    记录贝叶斯深度学习
    tensorflow2.0 新特性 + kaggle练习
    Caffe学习记录(十三) OCNet分割网络学习
    Caffe学习记录(十二) ICNet分割网络学习二
    Caffe学习记录(十一) ICNet分割网络学习
    Caffe学习记录(十) SegNet等分割网络学习
    关于完美拖拽的问题三
    关于完美拖拽的问题二
    关于完美拖拽的问题一
    无限下拉实现原理
  • 原文地址:https://www.cnblogs.com/msj513/p/9953701.html
Copyright © 2020-2023  润新知