如何使用 python 在函数"While"进行多线程处理?



我使用套接字编写了Python脚本。我写了一个基本的聊天,但是它有问题,我不知道如何使用Threading库以及使客户端在不阻止的情况下工作。我尝试了While,但它说:

thread.error:无法启动新线程

这是客户端代码:

import socket
import threading
my_socket = socket.socket()
my_socket = socket.socket()
my_socket.connect(('127.0.0.1', 23))
print('Welcome to the chat room . You can send messages here.')
print('Choose a nickname.')
nickname = raw_input()

def rcv_msg():
    print  (my_socket.recv(1024))

def snd_msg():
    txt = raw_input()
    my_socket.send('[' + nickname + ']: ' + txt)
while True:
    recv_thread = threading.Thread(target=rcv_msg)
    recv_thread.start()
    send_thread = threading.Thread(target=snd_msg)
    send_thread.start()

我该如何使它起作用?

您在循环时没有最终条件,因此您将创建很多线程,并使用所有系统资源。

请参阅上一个答案

您不应该在无限循环中创建并启动新线程。正如杰里(Jerry(提到的那样,它将一直在制造新线程并使用您的所有系统资源。

如果您打算连续运行这些线程,则可以在send_msg((和rcv_msg((定义中创建循环。

最新更新