楼主:
skyHuan (Huan)
2018-10-11 13:37:22最近在练习多执行绪的实作qsort
输入的资料量不大的时候可以顺利完成
但当资料量很大的时候thread会太多跑不动
我在找怎么限制thread数量的方法时
有查到一个ThreadPoolExecutor可以限制max_workers
如以下程式码前三行注解掉的地方
但我在pool.submit的时候
不确定要在建立thread的时候做
还是在thread .start()的时候做
其实也不确定这个方法是不是可行的
用threading.active_count()看好像thread数量还是不断爆增
想请问该如何正确使用
或是有没有其他更好的方法
感谢各位前辈解答
import threading
#from concurrent.futures import ThreadPoolExecutor
#pool = ThreadPoolExecutor(max_workers = 2)
def QuickSort(A, p, r):
if p < r:
q = Partition(A, p, r)
#QuickSort(A, p, q-1)
t1 = threading.Thread(target = QuickSort, args = (A, p, q-1))
#QuickSort(A, q+1, r)
t2 = threading.Thread(target = QuickSort, args = (A, q+1, r))
t1.start()
t2.start()
#print(threading.active_count())
t1.join()
t2.join()
if __name__ == '__main__':
...
QuickSort(L, 0, len(L)-1)