|
发表于 2018-2-9 17:45:59
|
显示全部楼层
本帖最后由 payton24 于 2018-2-9 17:57 编辑
这有点误导观众啊,不能说哪种运行得快就叫多线程啊,支持前面几位的说法。多线程本来就是并发的,在爬虫中运用还是不错的。
最后补充一下,我运行代码的结果为,比单线程还是快那么一点点,可能是现在的编译器优化了吧,用的是python3.6:
- 4999999950000000
- Multi Threading: Time used: 7.622436 sec
复制代码
代码为:
- # Multi Threading
- import time
- import threading as td
- time_start = time.time()
- def calc(st, ed):
- global global_list
- tmp = 0
- for i in range(st, ed):
- tmp += i
- global_list.append(tmp)
- global_list = []
- t1 = td.Thread(target=calc, args=(0, 25000000))
- t2 = td.Thread(target=calc, args=(25000000, 50000000))
- t3 = td.Thread(target=calc, args=(50000000, 75000000))
- t4 = td.Thread(target=calc, args=(75000000, 100000000))
- threads = [t1, t2, t3, t4]
- for t in threads:
- t.start()
- for t in threads:
- t.join()
- print (sum(global_list))
- time_stop = time.time()
- print ('Multi Threading: Time used: %.6f sec' % (time_stop - time_start))
复制代码 |
|