使用spawn/threads构建基本Python服务器

0 投票
1 回答
642 浏览
提问于 2025-04-16 01:56

我遇到了一个问题,其实应该挺简单的。

我有一个应用程序,它会把数据放到一个叫“目录A”的地方。这些数据会是一系列的文件。

我想要一个一直在运行的服务器,它会不断查看这个目录,一旦发现有完成的文件,服务器就会创建一个线程(我不太确定在Python中用什么词)来执行一些工作。

简单来说,我会在这个线程里执行一个外部文件,比如用include/execfile("foo"),来根据“目录A”中的文件来进行工作。

我希望能同时运行多个线程。所以我想尽可能快地运行整个过程,使用线程或创建进程应该能让我同时运行多个线程。这些工作进程之间没有任何通信。

我见过一些使用twisted等的例子,但我觉得我可能想得太复杂了……

如果有简单完整的例子让我可以试试就太好了!!(如果能指向网上的示例也不错……

谢谢……

1 个回答

1

在Python中,如果你有一台多核的电脑,建议你使用multiprocessing模块,而不是线程。

multiprocessing是一个可以用来创建进程的工具,它的使用方式和线程模块很像。这个模块可以让你在本地和远程同时运行多个任务,巧妙地绕过了全局解释器锁(Global Interpreter Lock),因为它使用的是子进程而不是线程。这样一来,使用multiprocessing模块可以让程序员充分利用电脑上的多个处理器。它可以在Unix和Windows系统上运行。

你还可以查看以下链接,里面有示例和介绍。

撰写回答