zoukankan      html  css  js  c++  java
  • 并发编程

    概念:

        并发:程序看上去是在同时运行

        串行:一个程序完完整整的运行完毕,才能运行下一个程序


    作用:

        cpu在执行程序,遇到io时,不干活,就可以使用并发

    多道技术:

         - 空间上的复用(多个程序共一套硬件设备,它是多道技术实现时间上的复用的基础,
             不然还要去硬盘读数据)
            
         - 时间上的复用(单个cpu的电脑上,起多个应用程序。cpu快速切换,给人的感觉是同时运行)
        
         cpu两种情况下才会切换:(先保存当前程序的运行状态)
             - 一个任务占用cpu时间过长或被操作系统强行剥夺走cpu的执行权限(比起串行效率反而降低)
             - 一个任务执行过程中遇到io操作,也会被操作系统强行剥夺走cpu的执行权限(比起串行效率提高)
            

    用法:


    示例:

    # TCP socketserver使用
    import socketserver
    class MyTcpServer(socketserver.BaseRequestHandler):
        def handle(self):
            while True:
                try:
                    data = self.request.recv(1024)  # 对于tcp,self.request相当于conn对象
                    if len(data) == 0:break
                    print(data)
                    self.request.send(data.upper())
                except ConnectionResetError:
                    break
    if __name__ == '__main__':
        server = socketserver.ThreadingTCPServer(('127.0.0.1',8081),MyTcpServer)
        server.serve_forever()
    
    # UDP socketserver使用
    import socketserver
    
    
    class MyUdpServer(socketserver.BaseRequestHandler):
        def handle(self):
            while True:
                data, sock = self.request
                print(data)
                sock.sendto(data.upper(), self.client_address)
    
    
    if __name__ == '__main__':
        server = socketserver.ThreadingUDPServer(('127.0.0.1', 8080), MyUdpServer)
        server.serve_forever()



  • 相关阅读:
    oracle单行函数 之 转换函数
    oracle单行函数 之 时间函数
    oracle单行函数 之 数字函数
    oracle单行函数 之 字符函数
    oracle 之 如何链接别人电脑的oracle
    轻应用介绍
    Web 目录枚举与遍历漏洞解决
    接口测试工具(Postman)
    Tomcat 编码不一致导致乱码
    持久化配置管理 diamond 使用简介
  • 原文地址:https://www.cnblogs.com/tyler-bog/p/10816388.html
Copyright © 2011-2022 走看看