gpt4 book ai didi

thread-safety - Django : Significance of 'RUN_MAIN' environment variable

转载 作者:行者123 更新时间:2023-12-04 18:06:46 35 4
gpt4 key购买 nike

在发出管理命令 runserver 时,它会使用加载程序运行服务器。在Django1.5的源码中遇到了一段代码在启动新进程/线程中的服务器之前,它在环境变量中专门将 RUN_MAIN 的值设置为 'true' 如果它不是 'true'

django/utils/autoreload.py

 new_environ = os.environ.copy()
new_environ["RUN_MAIN"] = 'true'
exit_code = os.spawnve(os.P_WAIT, sys.executable, args, new_environ)

在另一段代码中,它检查是否设置了该值,如果设置了,则只创建一个新的进程/线程。

 if os.environ.get("RUN_MAIN") == "true":
thread.start_new_thread(main_func, args, kwargs)

默认情况下,在系统 (linux2) 中未设置该值。

查询:

1) 该环境变量的意义是什么以及它与启动有何关系新进程/线程。

2) 如果 "RUN_MAIN" 为“true”,则代码创建一个线程,否则创建一个进程。这是为什么?

最佳答案

回答:1)确实,环境参数有助于管理许多进程。2) 原因是自动重新加载(当您保存文件时)。

你会在这里理解这个过程:

http://programmersought.com/article/49721374106/;jsessionid=766C1F404087AC1E369350A887C32A21

关于thread-safety - Django : Significance of 'RUN_MAIN' environment variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24827748/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com