zoukankan      html  css  js  c++  java
  • 并发

    轮询调度实现并发

    轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。 

    时间片轮转:(执行完第1个任务,再执行第2个,...)

    优先级调度:(有优先顺序)

    多线程实现并发:

    线程被称为轻量级进程(微进程),与进程类似,是在进程下执行的,并且线程之间共享上下文

    # -*- coding: utf-8 -*-
    ''' 多进程实现并发 python GIL保证同时刻只会执行一个线程,如果线程阻塞会切换到下一个线程 '''
    import socket
    import threading
    
    
    server = socket.socket()
    server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server.bind((
    '', 8888)) server.listen(5) # 生成监听套接字 def server_recv(conn): while True: recv_data = conn.recv(1024) if recv_data: print(recv_data.decode()) conn.send(recv_data) else: conn.close() break while True: conn, addr = server.accept() # 生成对等套接字 # 将阻塞的对等套接字存入线程, recv就会在自己的线程中阻塞,达到并发效果 thread = threading.Thread(target=server_recv, args=(conn, ), daemon=True) thread.start()

    其它操作:进程线程类似

    process = multiprocessing.Process(target=fun)
    process.start()
    process.current_process() # 查看当前进程
    process.join()  # 等待子进程process结束后,主进程才会结束(阻塞)  等同线程
    process.ternamite() # 父进程结束,子进程强制结束    线程不能被终止
  • 相关阅读:
    maquee 无缝轮播
    pascal语言中学版整理
    SPFA
    Bellman—Ford算法思想
    序列化
    random 模块 时间模块(time) sys模块 os模块
    1、正则表达式
    1、__del__ 2、item系列 3、__hash__ 4、__eq__
    小总结 面向对象
    1、面向对象内置函数 2、反射 3、内置方法
  • 原文地址:https://www.cnblogs.com/tangpg/p/10616084.html
Copyright © 2011-2022 走看看