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() # 父进程结束,子进程强制结束    线程不能被终止
  • 相关阅读:
    高精度“+”算法
    漏洞扫描
    端口扫描
    使用sqlmap
    Kali实现靶机远程控制
    Docker下配置KeepAlive支持nginx高可用
    web攻防环境--一句话木马
    Docker容器技术--自定义网桥后的默认网卡名称
    小白大数据学习指南
    Nginx简单操作
  • 原文地址:https://www.cnblogs.com/tangpg/p/10616084.html
Copyright © 2011-2022 走看看