1、asyncio
3.4版本以后加入标准库。
Asyncio底层基于selectors,看似库,其实就是框架,包含异步IO、时间循环、协程、任务等内容。
def a(x=3):
for x in range(x):
print(x)
def b(x=3):
for x in range(x):
print(x)
a()
b()
上例子中函数调用是串行,不是并行。可以利用方法进行改变。
1)利用生成器函数
def a(x=3):
for x in range(x):
print(x)
yield
def b(x=3):
for x in range(x):
print(x)
yield
x1 = a()
y = b()
for i in range(3):
next(x1)
next(y)
2)多线程
import time
import threading
def a(x=3):
for x in range(x):
time.sleep(1)
print(x)
def b(x=3):
for x in range(x):
time.sleep(1)
print(x)
threading.Thread(target=a,name='a').start()
threading.Thread(target=b,name='b').start()
3)利用multiprocessing库,也是多线程
import time
import multiprocessing
def a(x=3):
for x in range(x):
time.sleep(1)
print(x)
def b(x=3):
for x in range(x):
time.sleep(1)
print(x)
if __name__ == '__main__':