zoukankan      html  css  js  c++  java
  • 作业

    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.什么是异步 什么是异步回调 为什么需要异步回调

    异步  

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

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

     

    异步回调

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

    为什么需要异步回调

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

      

  • 相关阅读:
    取物料特性
    MATCHCODE OBJECT 属性是什么意思
    SAPABAP用户权限检查
    FOR ALL ENTRIES的原理:
    上传EXCEL和text到SAP内表 ,SAP内表导出EXCEL
    屏幕设计设置默认值
    使用JOIN关联多张数据库表
    WHERE spras = sylangu.这是什么意思
    DESCRIBE TABLE
    取批次特性值
  • 原文地址:https://www.cnblogs.com/msj513/p/9953701.html
Copyright © 2011-2022 走看看