django 全局变量在WSGI多进程多线程环境中的研究
场景1:
2个进程,每个进程1个线程,请求函数中设置了10秒sleep,9个请求同一URL:
结果:
全局变量ID值,在每一个进程中相同,不同进程中不相同
并行只能接受2个请求,同时发起多个请求,则需要排队等待处理
场景2:
1个进程,每个进程2个线程,请求函数中设置了10秒sleep,9个请求同一URL:
结果:
全局变量ID值,在单进程中相同,每个线程中也相同
并行只能接收2个请求,同时发起多个请求,则需要排队等待处理
场景3:
2个进程,每个进程2个线程,请求函数中设置了10秒sleep,9个请求同一URL:
结果:
全局变量ID值,在每一个进程中相同,同一进程中每个线程中也相同,,不同进程中不相同
并行只能接收4个请求,同时发起多个请求,则需要排队等待处理
总结:
每个WSGI进程会拥有独立的python变量,该进程内线程共享该变量
进程数 乘以 线程数得到同时能够处理的并发请求数
一个固定的线程,正在处理一个请求时,请求未处理结束,不会同时处理另外的请求。
文档信息
版权声明:可自由转载(请注明转载出处)-非商用-非衍生
发表时间:2021年9月2日 17:30