Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于运行异步请求的Python芹菜与线程库_Python_Celery_Django Celery_Python Multithreading - Fatal编程技术网

用于运行异步请求的Python芹菜与线程库

用于运行异步请求的Python芹菜与线程库,python,celery,django-celery,python-multithreading,Python,Celery,Django Celery,Python Multithreading,我正在运行一个python方法来解析大量数据。因为它是时间密集型的,所以我想在一个单独的线程上异步运行它,这样用户仍然可以访问网站/UI 如果用户退出站点,使用“从线程导入线程”模块的线程是否会终止,或者它们是否继续在服务器上运行 对于这样的事情,使用芹菜(芹菜)比简单地使用线程模块有什么好处?由于(in)著名的aka(GIL),Python解释器完全是单线程的。因此,Python中的线程仅在计算和IO同时发生时提供并行性。在Python线程模型中,至少在cpython2或3下,计算绑定任务从线

我正在运行一个python方法来解析大量数据。因为它是时间密集型的,所以我想在一个单独的线程上异步运行它,这样用户仍然可以访问网站/UI

如果用户退出站点,使用“从线程导入线程”模块的线程是否会终止,或者它们是否继续在服务器上运行


对于这样的事情,使用芹菜(芹菜)比简单地使用线程模块有什么好处?

由于(in)著名的aka(GIL),Python解释器完全是单线程的。因此,Python中的线程仅在计算和IO同时发生时提供并行性。在Python线程模型中,至少在cpython2或3下,计算绑定任务从线程中看不到什么好处

另一方面,这些限制不适用于多处理,这是您将要对芹菜这样的排队系统执行的操作。您可以运行多个Python工作实例,这些实例可以在多核机器上同时执行,或者在多台机器上同时执行


如果我理解你的情况——一个网站上的交互启动了一个长期运行的作业——排队几乎肯定是正确的选择。您可以获得真正的并行性,并且可以轻松地将处理转移到其他机器。

您能告诉我您所说的
计算绑定线程是什么意思吗?另外,你的意思是,执行执行执行计算或需要通过线程进行I/O的代码不会增加价值吗?@Venkat,所谓“计算绑定”我指的是限制因素是在CPU中执行操作的进程,而不是限制因素是在CPU有空闲周期时读写磁盘或网络的I/O绑定。请参阅。如果只是为了不阻止必须响应客户端的线程,那么使用线程模块是否合理?
线程模块的@cbare python线程是“真正的”操作系统线程,但由于GIL,它们不运行ConcurrentlyEdit,谢谢@piecWell,事实证明,这个问题并不是仅仅基于观点而产生答案。相反,它根据事实和参考资料生成答案。让一些人关注社区中发生的事情是很好的,但你们这些人会根据需要更新你们的行为!