python同步执行_python的同步和异步代码展示

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:31   1412   0

# coding:utf-8

# @Author: zlq

import asyncio

import time

job_num = 0

# no async

def job(t=0):

global job_num

print("start job", job_num)

time.sleep(t)

print("job", job_num, "takes", t, "s" )

job_num += 1

def main():

[job(t) for t in range(1, 3)]

t1 = time.time()

main()

print("NO async total time : ", time.time() - t1)

print("#"*40)

# async

async def job(t): # async 形式的功能

print('Start job ', t)

await asyncio.sleep(t) # 等待 "t" 秒, 期间切换其他任务

print('Job ', t, ' takes ', t, ' s')

async def main(loop): # async 形式的功能

global job_num

job_num = 0

tasks = [

loop.create_task(job(t)) for t in range(1, 3)

] # 创建任务, 但是不执行

await asyncio.wait(tasks) # 执行并等待所有任务完成

t1 = time.time()

loop = asyncio.get_event_loop() # 建立 loop

loop.run_until_complete(main(loop)) # 执行 loop

loop.close() # 关闭 loop

print("Async total time : ", time.time() - t1)

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP