在python中清除线程?

Naa*_*tan 2 python multithreading asynchronous

我正在尝试使用python建立一个非常简单的UDP套接字服务器,它接受异步连接.现在我从来没有使用过很多Python,但是我从我读过的内容中非常喜欢这种语言,这就是为什么我将它用于此测试.

我遵循这里给出的例子:

http://docs.python.org/library/socketserver.html#asynchronous-mixins

我已经成功运行它作为UDP服务器(例如TCP),只需很少的修改,因此它几乎与该示例中的完全相同.我唯一没有得到的是它不断为每个连接创建新线程.

现在我可能只是错过理解线程的概念,这就是为什么我在这里问我的问题,但不应该清除未使用的线程并重新使用它们?或者它是否已经这样做,它只是一个增量计数器,表明我不应该太在意的数字?

所以基本上,在给定的例子中,我可以安全地运行这个(作为测试)几个小时,有数千个连接(不是同时,但随着时间的推移)没有任何问题,或者它会启动成千上万的线程延续比他们应该的时间长得多?

谢谢

nos*_*klo 6

不需要线程.使用真正的异步IO.它扩展得更好.等待IO的线程只会增加开销,没有性能提升.

from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor

class Echo(DatagramProtocol):

    def datagramReceived(self, data, (host, port)):
        print "received %r from %s:%d" % (data, host, port)
        self.transport.write(data, (host, port))

reactor.listenUDP(9999, Echo())
reactor.run()
Run Code Online (Sandbox Code Playgroud)