O processo de nêutrons do Python não suporta a entrada da função input ()

Código fonte incorreto:

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()
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 创建发送函数
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()

No design do processo python, apenas o processo principal pode receber entrada de input (), o subprocesso não possui modo de entrada e a operação relata diretamente um erro.

O que é mais problemático é o pool de processos, na superfície não haverá erros, mas a função input () não pode sair depois que entra e recebe dados de entrada

Publicado 705 artigos originais · elogiou 867 · 1,51 milhão de visualizações

Acho que você gosta

Origin blog.csdn.net/sinat_38682860/article/details/105497074
Recomendado
Clasificación