我刚开始学习使用Python的sockets。因此,我编写了一些聊天服务器和客户端的示例。在互联网上看到的大部分内容似乎都使用了线程模块来(异步)处理客户端连接到服务器的情况。我确实明白,为了获得可扩展的服务器,您需要使用一些额外的技巧,因为数千个线程可能会使服务器崩溃(如果我错了,请纠正我,这是由于GIL吗?),但这不是我目前关心的问题。
奇怪的是,我在Python文档中发现创建子进程是处理套接字的正确方式(不幸的是,我找不到参考文献,抱歉 :( )。
那么问题是:使用线程还是使用多进程?或者有更好的解决方案吗?
请给我答案并向我解释其中的区别。
顺便说一句:我知道有像Twisted这样写得很好的东西。我不想要预先制作的可扩展服务器,而是试图理解如何编写一个可以缩放或至少处理10k个客户端的服务器。
编辑:操作系统是Linux。