美文网首页
python中子进程不支持input()函数输入

python中子进程不支持input()函数输入

作者: 战狼渐渐 | 来源:发表于2018-09-28 20:56 被阅读0次

    import socket

    import threading

    import multiprocessing

    # 创建socket

    serve_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    serve_socket.bind(('', 8086))

    serve_socket.listen(128)

    link_socket, addres = serve_socket.accept()

    # 创建发送函数

    def send():

        while 1:

            send_data = input('请输入要发送的内容:')

            link_socket.send(send_data.encode())

    # 创建接受函数

    def recv():

        while 1:

            recv_data = link_socket.recv(1024)

            print(recv_data.decode())

    # 创建多进程

    p1 = multiprocessing.Process(target=send_)

    p2 = multiprocessing.Process(target=recv_)

    p1.start()

    p2.start()

    # 创建进程池

    pool = multiprocessing.Pool(2)

    for _ in range(2):

        pool.apply_async(recv)

        pool.apply_async(send())

    pool.close()

    pool.join()

    在进程python的设计里面只有主进程可以接收input()的输入,子进程没有输入模式,运行直接报错

    更坑的是进程池,表面上不会出错,但是input()函数一旦进入无法退出,一直在接收输入的数据

    相关文章

      网友评论

          本文标题:python中子进程不支持input()函数输入

          本文链接:https://www.haomeiwen.com/subject/qxlmoftx.html