zoukankan      html  css  js  c++  java
  • python中子进程不支持input()函数输入

    错误的源代码:

    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()函数一旦进入无法退出,一直在接收输入的数据

  • 相关阅读:
    Google验证码Kaptcha的详细过程
    stm32—单总线(1-wire)
    stm32—I2C
    归并排序(MergeSort)
    冒泡排序(Bubble Sort)
    stm32—GPIO
    stm32—时钟系统
    stm32—复位
    转义字符表
    ASCII码表格
  • 原文地址:https://www.cnblogs.com/ellisonzhang/p/10453371.html
Copyright © 2011-2022 走看看