以下代码似乎是顺序执行而不是并发执行。 它只使用一个CPU核心。 有没有办法让它在线程之间使用多个内核或切换内容? (我希望它可以像java中的Thread类一样工作。)
import threading
def work(s) :
for i in range(100) :
print s
for j in range (12345678) :
pass
a = []
for i in range(3) :
thd = threading.Thread(target = work('#'+str(i)))
a.append(thd)
for k in a : k.start()
for k in a : k.join()
print "Ended."
答案 0 :(得分:4)
线程无法在Python中使用多个核心。然而,过程可以。
multiprocessing是一个使用a支持产生进程的包 API类似于线程模块。多处理包 提供本地和远程并发,有效地侧面步进 全局解释器锁通过使用子进程而不是线程。 因此,多处理模块允许程序员完全 利用给定计算机上的多个处理器。它可以在Unix上运行 和Windows。
点击here了解详情
答案 1 :(得分:0)
我的一个朋友曾经问过我一次。在您的情况下,只需使用multiprocessing.process
即可使用所有内核。