El proceso de neutrones de Python no admite la entrada de la función input ()

Código fuente incorrecto:

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()

En el diseño del proceso python, solo el proceso principal puede recibir información de input (), el subproceso no tiene modo de entrada y la operación informa directamente un error.

Lo que es más difícil es el grupo de procesos, en la superficie no habrá errores, pero la función input () no puede salir una vez que ingresa, y ha estado recibiendo datos de entrada

705 artículos originales publicados · elogiados 867 · 1.51 millones de visitas

Supongo que te gusta

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