Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GIL 部分描述有误 #66

Open
Jax-Rene opened this issue Nov 25, 2018 · 1 comment
Open

GIL 部分描述有误 #66

Jax-Rene opened this issue Nov 25, 2018 · 1 comment

Comments

@Jax-Rene
Copy link

线程全局锁(Global Interpreter Lock),即Python为了保证线程安全而采取的独立线程运行的限制,说白了就是一个核只能在同一时间运行一个线程.

主要是这一句:说白了就是一个核只能在同一时间运行一个线程.
多核操作系统下即使是并行计算一个核同时最多也只能有一个线程在运行计算。这里要表达的应该是Python的GIL锁导致Python无法进行并行计算只能并发,一个进程在进行多线程运算时,最多同时只能使用一个核来计算。如果需要使用多核计算需要用多进程而不是多线程。

个人理解,不知道是否有误,仅供参考哈!

@maltoze
Copy link

maltoze commented Aug 7, 2019

我也觉得GIL的描述有问题,下面是维基百科的解释。

CPython的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个Python解释器进程内有一个主线程,以及多个用户程序的执行线程。即便使用多核心CPU平台,由于GIL的存在,也将禁止多线程的并行执行

GIL-维基百科

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants