如果我閱讀了django文檔,只有關於模板標籤的文檔提到了線程安全的潛在危險。Django和線程安全
不過,我很好奇,什麼樣的事情,我要做/避免寫在Django線程安全的代碼...
一個例子是,我有以下功能配置中使用的記錄器Django的。
_LOGGER_CONFIGURED = False
def config_logger():
global _LOGGER_CONFIGURED
if _LOGGER_CONFIGURED: return
_LOGGER_CONFIGURED = True
rootlogger = logging.getLogger('')
stderr_handler = StreamHandler(sys.stderr)
rootlogger.addHandler(stderr_handler)
,並在我的根URL配置結束後,我有以下函數調用:
config_logger()
的問題是:
這段代碼線程?
django線程之間共享什麼樣的變量?
您的意思是線程不安全的潛在危險:p – Edmund 2010-11-22 22:46:48
我認爲有線程不安全的潛在地方(其中一些被人指出)。 -urlresolver使用全局可變字典,如果服務器啓動時出現併發請求,則可以將此對象置於不確定狀態。 -many django表單和字段類都有全局計數器......我不知道它們是如何使用的,但它似乎並不像訪問它們那樣不受互斥體保護。我想這可能是潛在的危險。 – 2010-12-15 07:07:10