使用Python线程关闭线程

时间:2019-11-19 19:30:55

标签: python sockets networking server client

我正在用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?

0 个答案:

没有答案