多线程demo
import threading
def getTypicalRoutes():
def test(ss, ee):
for i in range(ss, ee):
time.sleep(0.5)
print(i)
# 并行计算参数
runList = [[1,10],[10,15],[15,23]]
threadList = []
for run in runList:
threadList.append(
threading.Thread(target=test, args=(run[0],run[1]))
)
# 子线程开始计算
for tr in threadList:
tr.start()
# 阻塞主线程,等待全部子线程计算完毕
for tr in threadList:
tr.join()
print('主线程完成了')
多进程
Python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。
import multiprocessing as mp
def test()
runList = [[0,1000],[1000, 1800],[1800,2300],[2300,2700],[2700,3700],[3700,4767]]
ProcessList = []
for run in runList:
p = mp.Process(target=TypicalRoute_Sample_Create,args=(run[0],run[1],))
p.start()
ProcessList.append(p)
# 阻塞主进程,等待全部子进程计算完毕
for p in ProcessList:
p.join()
使用方式和多线程基本一致,但需要注意的需要启动main:
if __name__ == '__main__':
test()