Python 多线程效率不高
Python multithread not efficient
我尝试比较多种处理器和多种编程语言的速度,但我在 python 中遇到多线程问题:
def main(argv):
start_time = time.time()
case_number = 2
nb_thread = 2
t = [0] * nb_thread
for i in range(0, nb_thread):
t[i] = Thread(target=resolve, args=("TREAD " + str(i),)) // resolve is a mathematic problem (about 6 seconds to resolve it)
t[i].start()
t[0].join()
t[1].join()
print("--- %s seconds ---" % (time.time() - start_time))
if __name__ == '__main__':
main(sys.argv)
1 个线程和 1 个 resolve()=> 6 秒,2 个线程和 2 个 resolve() => 12 秒
在 resolve() 中使用 print() 你看不到这里,我读到:
D:\Dev\python\Sudoku>python main.py txt.txt
TREAD 0 <<BEGUIN>>
TREAD 1 <<BEGUIN>>
TREAD 0 <<END>>
TREAD 1 <<END>>
--- 12.335727453231812 seconds ---
似乎有些地方我不明白:/
谢谢!
realpython.com/python-gil
有趣谢谢!
我尝试比较多种处理器和多种编程语言的速度,但我在 python 中遇到多线程问题:
def main(argv):
start_time = time.time()
case_number = 2
nb_thread = 2
t = [0] * nb_thread
for i in range(0, nb_thread):
t[i] = Thread(target=resolve, args=("TREAD " + str(i),)) // resolve is a mathematic problem (about 6 seconds to resolve it)
t[i].start()
t[0].join()
t[1].join()
print("--- %s seconds ---" % (time.time() - start_time))
if __name__ == '__main__':
main(sys.argv)
1 个线程和 1 个 resolve()=> 6 秒,2 个线程和 2 个 resolve() => 12 秒
在 resolve() 中使用 print() 你看不到这里,我读到:
D:\Dev\python\Sudoku>python main.py txt.txt
TREAD 0 <<BEGUIN>>
TREAD 1 <<BEGUIN>>
TREAD 0 <<END>>
TREAD 1 <<END>>
--- 12.335727453231812 seconds ---
似乎有些地方我不明白:/ 谢谢!
realpython.com/python-gil
有趣谢谢!