协程并发
gather方法,传列表的话记得解包
代码实验
import asyncio,time
'''
协程创建100个文件
'''
#定义一个协程对象
async def write_file(path, num):
print('正在生成{}个文件'.format(num))
with open(path, 'w') as f:
f.write('this is file{}'.format(num))
if __name__ == '__main__':
start = time.time()
loop = asyncio.get_event_loop()
tasks = []
for i in range(1, 101):
tasks.append(write_file('./output/file_asyncio' + str(i) + '.txt', i))
loop.run_until_complete(asyncio.wait(tasks))
print('任务消耗{}'.format(time.time()-start))
import threading, time
'''
多线程创建100个文件
'''
def write_file(path, num):
print('正在生成{}个文件'.format(num))
with open(path, 'w') as f:
f.write('this is file{}'.format(num))
if __name__ == '__main__':
start = time.time()
threads = []
for i in range(1, 101):
t = threading.Thread(target=write_file('./output/file_thread'+str(i)+'.txt', i))
threads.append(t)
t.start()
[t.join() for t in threads] # 阻塞主线程,方便计时
print('任务消耗{}'.format(time.time() - start))