1. 程式人生 > >解釋性語言和非解釋性語言,GIL鎖

解釋性語言和非解釋性語言,GIL鎖

bsp python解釋器 自己 需要 運行 出現 並不是 編譯 pypy

解釋性語言:python寫的代碼就被稱為程序,cpu硬件能運行二進制代碼指令。demo.py需要經過python解釋器編譯才做才能執行。

非解釋性語言:例如c語言程序,同樣需要寫代碼。demo.c這個代碼並不是程序,因為運行不起來,要想真正運行起來就需要編譯的操作,把demo.c編譯成一個二進制的程序才能運行。

GIL鎖:

解釋器需要用到的全局資源,這些資源是用來解釋代碼用的,但是多線程可能會出現競爭這些資源的情況,所以有了GIL鎖,就是全局解釋器鎖,只有拿到鎖的才能解釋代碼,只有cpython才有全局解釋器鎖,cpython就是c語言開大的python計時器就是cpython。用java寫的解釋器是jpython,還有pytho自己寫的解釋器pypy。那麽既然存在GIL鎖,為什麽還要用多線程?

解釋性語言和非解釋性語言,GIL鎖