Python多进程线程并发

2021/10/5 7:11:00

本文主要是介绍Python多进程线程并发,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 步骤:

"""
fork多进程并发
"""
import signal
from socket import *
import os
# Windows上无法运行fork
# from multiprocessing import Process

# 全局变量
ADDR = ('0.0.0.0', 8888)

# 客户端处理函数
def handle(c):
    while True:
        data = c.recv(1024)
        if not data:
            break
        print(data.decode())
        c.send(b'ok')
    c.close()

# 创建监听套接字
s = socket()
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.bind(ADDR)
s.listen(3)

# 处理僵尸进程
# signal.signal(signal.SIGCHLD, signal.SIG_IGN)

# 循环等待客户端连接
print('Listen the port 8888...')
while True:
    try:
        c, addr = s.accept()
        print('Connect from', addr)
    except KeyboardInterrupt:
        s.close()
        os._exit(0) # 人为希望服务队退出
    except Exception as e:
        print(e)
        continue

    # 创建子进程处理连接的客户端请求
    pid = os.fork()
    if pid == 0:
        s.close()   # 子进程中没有需要用s
        # 处理客户端请求
        handle(c)
        os._exit(0)
    else:
        c.close()   # 父进程中没有需要用c

 



这篇关于Python多进程线程并发的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程