簡體   English   中英

python Global Interpreter Lock GIL問題

[英]python Global Interpreter Lock GIL problem

我想在網上提供一個人們可以測試算法性能的服務,這是用python編寫並在linux機器上運行的

基本上我想做的是,有一個非常簡單的PHP處理程序,比方說start_algo.php,它接受來自瀏覽器的請求,以及通過system()或popen()的php代碼(類似於exec(“ python algo.py“))發出一個運行python腳本的新進程,我認為這部分是可行的

問題是因為它是一個Web服務,當然它必須同時為多個用戶服務,但我對全球解釋器鎖GIL http://wiki.python.org/moin/GlobalInterpreterLock的'標准感到困惑'CPython已實現,是否意味着,如果我有3個用戶現在運行算法(這意味着3個獨立的進程,如果我錯了,請糾正我),在特定時刻,只有一個用戶正在運行Python口譯員和其他2人正在等待輪到他們?

提前謝謝了

攤曬

如果要通過調用新進程打開每個腳本; 你不會與GIL發生沖突。 每個進程都有自己的解釋器,因此也有自己的解釋器鎖。

GIL是按進程進行的。 如果你啟動多個python進程,每個進程都有自己的GIL,可以防止這個特定進程中的解釋器一次運行多個線程。 但獨立進程可以同時運行。

此外,一個Python進程中的多個線程確實輪流運行(相當頻繁地,IIRC每100個操作碼指令一次或幾十毫秒,具體取決於版本),因此它不像GIL完全阻止並發 - 它只是防止多個 -穿線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM