我正在用Python创建一个客户端/服务器系统,该系统要求服务器长时间运行,因为连接它的每个客户端都会使用线程生成一个线程。当用户加入该线程时,该用户将进入while循环,该循环永远检查来自客户端的消息。如果客户端退出,则while循环中断,线程内的代码结束。我认为这是“关闭线程”的安全方法-通过简单地完成已被赋予执行的代码即可。
但是,在我的服务器上发生不相关的错误时,它给了我一个错误-“线程40上的错误”在发生错误时,只有4个客户端连接,但是40个线程正在连接?这样安全吗?为了避免服务器因内存过载而崩溃,我是否可以安全地关闭线程?
def acceptConnections():
while True:
client, client_address = sock.accept()
Thread(target=handleClient, args=(client,)).start()
def handleClient(client):
while True:
message=client.recv() #Receives messages
if message == 'exit':
break
#I thought the Thread closes here?