|
|
1
15
我敢肯定,如果你把循环的数量增加到10000个左右,你会把输出搞混。记住,简单地生成第二个线程也需要“很多”时间。 |
|
2
11
在第二个线程开始第一个线程循环和打印的时间内。 这里看起来像这样,你可以看到第二个线程在第一个线程发出几声Hello后开始。
|
|
|
3
4
根据系统使用的是单处理器还是多处理器,行为也可能发生变化,如 this talk 大卫·比兹利。 正如viraptor所说,第一个线程将在执行sys.getcheckinterval()字节码(默认为100)后释放GIL。粗略地总结一下David Beazley所说的,在单处理器系统上,第二个线程将有机会接管。但是,在多核系统上,第二个线程可能运行在不同的核上,第一个线程将尝试重新获取锁,并且可能会成功,因为操作系统没有时间切换处理器。这意味着,在一个多核系统上,有一个CPU绑定的线程,其他线程可能永远看不到。
|
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 2 年前 |
|
|
András Takács · Python多线程错误 2 年前 |