zoukankan      html  css  js  c++  java
  • 非阻塞IO

    非阻塞IO 即使遇到了io也不会导致程序阻塞 会继续执行意味着即使遇到io操作cpu也不会执行也不会被剥夺                                      程序效率就高了

    原因是 需要无线循环 去向操作系统拿数据
    import  socket

    import time

    s = socket.socket()
    s.bind(("127.0.0.1",9999))
    s.listen()
    #设置socket是否阻塞 默认为True

    s.setblocking(False)
    #所有的客户端socket

    cs = []
    #所有需要返回数据的客户端

    send_cs = []
    while True:

      try:

        c.addr = s.accept()
        print ('run accept)
        cs.append(c)
      except BlockingIoError:

        for c in cs[:]:
          try:

            data = c.recv(1024)
              if not data:

              c.close()
              cs.remove()

            print(data.decode("utf-8))
            send_cs.append((c,addr))

          except BlockingIoError:

              continue 
          except ConnectionResetError:

          
     

  • 相关阅读:
    PS转换图片——我教你
    通过Ajax——异步获取相关问题解答
    Spring的线程安全
    Spring MVC的工作机制
    Annotation的语法和使用
    Spring Bean的生命周期
    浅谈Spring
    Spring的事务管理
    行为型模式
    结构型模式
  • 原文地址:https://www.cnblogs.com/tangda/p/10519616.html
Copyright © 2011-2022 走看看