Python Apache下的多线程导致重复线程

Python Apache下的多线程导致重复线程,python,django,multithreading,apache2,threadpool,Python,Django,Multithreading,Apache2,Threadpool,我在Apache2下运行一个python线程池来处理传入的特殊HTTP请求 我的想法是,每个请求源有一个“处理程序”线程——因此,如果我有三个设备(a、B、C)向我发送这些特殊请求,那么每个设备在服务器上都有自己的“处理程序”线程(1-a、2-B、3-C) 我有一个线程池类,定义如下: class threadController(threading.Thread) threadPool = [] 当我收到一个新的请求时,我会检查所有正在运行的线程,以匹配一个特定的线程,并将请求传递给它

我在Apache2下运行一个python线程池来处理传入的特殊HTTP请求

我的想法是,每个请求源有一个“处理程序”线程——因此,如果我有三个设备(a、B、C)向我发送这些特殊请求,那么每个设备在服务器上都有自己的“处理程序”线程(1-a、2-B、3-C)

我有一个线程池类,定义如下:

class threadController(threading.Thread)
   threadPool = []
当我收到一个新的请求时,我会检查所有正在运行的线程,以匹配一个特定的线程,并将请求传递给它

这似乎在Windows下工作得很好

然而,在Linux上,似乎有时我的threadPool变量返回为空,并且我得到一个额外的线程。因此,我有一个设备(a)发送请求,但最终有两个线程(1-a和2-a)

奇怪的是:它总是有一个额外的线程,从来没有更多。无论我的设备(A)发送5个请求还是30个请求

我正在使用mod_wsgi(3.3)进行django集成


注意:我意识到这是一种处理会话的非正统方式。我不是在寻找更好地处理会话的方法-我已经知道有更好的方法:)

在Windows上,只有一个Apache子进程处理请求。在非Windows系统上,如果使用嵌入式模式,则可能有多个进程

使用mod_wsgi守护进程及其单个进程的默认值。见:

以及:


是的,这正是问题所在,MPM不同。我根据您的第二个链接调整了apache设置,它运行良好。