Python中的多线程队列

sel*_*ame 2 python queue multithreading

我需要在Web应用程序中执行耗时的任务.因为任务可能非常繁重,以至于它们运行几分钟,所以它们必须在多个线程上运行,因此用户不必在几分钟内查看加载页面.

所以我认为多线程队列是一个很好的解决方案.添加到队列的对象的每个实例都应在其自己的线程上运行.

我有一个基本的想法从哪里开始,但我敢打赌,已经有很多更好的解决方案已经写好或者你的大脑;).

我的解决方案队列应该如何:

[
 [
  obj_instance_1,[
                  (function_1, function_args_1, priority_1),
                  (function_2, function_args_2, priority_2),
                 ]
 ],
 [
  obj_instance_2,[
                  (function_n, function_args_n, priority_n),
                 ]
 ]
]
Run Code Online (Sandbox Code Playgroud)

其中[]是列表,()是元组.

Van*_*ale 6

Python标准库Queue模块已经是线程安全且可识别的,应该可以满足您的要求.

这是一篇很好的论文任务队列实现模式,讨论了如何将Queue用于任务队列.