我试图比较使用多线程模块的并行计算和普通序列计算的性能增益,但找不到任何真正的差异。time.time()out1=[calc1(x)for x in threads]print end-start按顺序运行的计时始终低于使用多线程的计时。我有一种感觉,我的多线程代码有问题。
有人能告诉我怎么走吗?谢谢。
当我们运行单线程应用程序时,它看起来很简单。CPython解释器逐个运行字节码指令并立即执行。但是,如果我们从第一个线程启动另一个线程,它是否有自己的循环消耗字节码,并且它们共享一些用于同步的公共内存(GIL等),或者以某种方式从第一个(主)线程循环委托第二个线程的指令?我不知道第二个线程是如何获得指令的,如果需要不断地解释,它需要执行什么。我知道它不会因为GIL而并行运行,但是关于解释指令的问题,它在两个线程中都会发生吗?main__":
x =