
多线程
thorraythorray
这个作者很懒,什么都没留下…
展开
-
python的多线程和协程的区别和应用
多线程 python的多线程由于全局锁并不能并行,而是是单线程执行的分时复用模式。 线程A占用CPU,获得GIL锁。 遇到IO操作,中断,则释放锁。 没遇到IO,则执行1000字节指令(py2)或者执行运行时间15ms,释放。 根据竞态原则,抢到的线程会占用cpu,从新获得GIL。 每个线程可能会由各种计算和IO操作组成,再整个执行过程中,cpu会因为上述原因不断地在各个线程之间切换,使得线程在执行IO的时候,cpu不会空等它结束而是去服务其他线程,这样就造成了多线程像是并行一样的效果。 协程 协程虽然原创 2021-03-19 00:15:06 · 1263 阅读 · 0 评论 -
浅谈python3对多线程性能改进的一些理解
一个小实验 python的多线程工作其实是分时复用,因为有GIL锁导致在某个时间段中只有一个线程在使用cpu,所以他难以发挥cpu多核的优势,这样也就导致python的多线程不适合执行计算密集的工作。而且重要的是在多线程中存在着数据安全的问题,我在近日使用的时候发现了2和3版本中的一些小差异,因此写了个例子来看看。 import threading import time start = time.time() num = 0 def count(): global num for i原创 2020-11-30 22:15:07 · 573 阅读 · 1 评论