如何在服务器上启动始终在线的 Python 解释器?
如果 bash 启动多个 python 程序,我如何只在一个解释器上运行它?
以及如何在跟踪 bash 请求的数量后启动一个新的解释器,比如在对 python 程序的 X 请求之后,应该启动一个新的解释器。
编辑:不是https://stackoverflow.com/questions/16372590/should-i-run-1000-python-scripts-at-once?rq=1的副本
请求可能会依次涌入
如何在服务器上启动始终在线的 Python 解释器?
如果 bash 启动多个 python 程序,我如何只在一个解释器上运行它?
以及如何在跟踪 bash 请求的数量后启动一个新的解释器,比如在对 python 程序的 X 请求之后,应该启动一个新的解释器。
编辑:不是https://stackoverflow.com/questions/16372590/should-i-run-1000-python-scripts-at-once?rq=1的副本
请求可能会依次涌入
你不能让新的 Python 程序通过 bash 在同一个解释器上运行,每个程序总是有自己的。如果您想限制运行的 Python 程序的数量,最好的方法是在您的服务器上运行一个 Python 守护进程,而不是通过 bash 在每个请求上创建一个新程序,您将向守护进程发出信号以创建一个线程来处理任务。
您可能想看看http://docs.python.org/3/library/threading.html和http://docs.python.org/3/library/multiprocessing.html;threading
会更轻量级,但一次只允许一个线程执行(这意味着它不会利用多核/超线程系统),同时multiprocessing
允许真正的同时执行,但可能比threading
你在系统上的轻量级少一点这不使用轻量级子进程,如果线程/进程花费大量时间执行 I/O 请求,则可能没有必要。
在 python 中永远运行一个程序:
while True :
do_work()
您可以查看为传入请求生成线程。查看 threading.Thread 类。
从线程导入线程
task = new Thread(target=do_work, args={})
task.start()