对于python中的线程我还是有些疑问
来源:6-5 全局解释器锁GIL
a909802
2018-07-24
很认真的把这节课看了好几遍,最后自己写了一个小demo测试了一下,
跑了很多遍,得到的结果都是
,让我不禁产生了疑问,这个应该就是全局GIL起到的作用,但是和java的同步锁机制好像不太一样,这个怎么看都是执行完了一个线程中所有代码再执行另一个线程,还是说我的写法有问题- -
写回答
3回答
-
我有点没看懂,你启用2到3个线程,别弄主线程 试试
032018-07-24 -
天行有常哦
2022-12-15
def worker1(): t = threading.current_thread() time.sleep(1) print(t.getName(), time.time()) for i in range(10): print('round {}'.format(i)) t1 = threading.Thread(target=worker1, name='t1') t2 = threading.Thread(target=worker1, name='t2') t3 = threading.Thread(target=worker1, name='t3') t1.start() t2.start() t3.start()
建议试试这段代码,明显能看出t1,t2,t3并不是同步执行的。
00 -
慕标1049315
2020-05-12
原代码里肯定是先执行主线程。如果你想看到两个线程之间切换的效果,可以启动两个子线程,并且线程(函数)里加一个time.sleep().你就可以看到线程1运行到sleep的时候,程序切换到了线程2
00
相似问题