asyncio
import threading
import time
多线程例子
def spider():
#.....
0.02)
time.sleep(def main1():
for i in range(100):
spider()def main2():
= []
thread_list for i in range(100):
= threading.Thread(target = spider)
thread
thread.start()
thread_list.append(thread)for t in thread_list:
t.join()if __name__ == "__main__":
= time.time()
start
main1()= time.time()
end print("time1 :{:.4f}".format(end-start))
= time.time()
start
main2()= time.time()
end print("time2 :{:4f}".format(end-start))
time1 :2.0523
time2 :0.037929
yield
def fib(n):
= 0,1
a,b while b<n:
= b,a+b
a,b yield a
print(fib(100))
for i in fib(100):
print(i)
<generator object fib at 0x000002B1A7AA1E60>
1
1
2
3
5
8
13
21
34
55
89
协程
GEN_CREATED 创建完成,等待执行 GEN_RUNNING 解释器正在执行 GEN_SUSPENDED 在 yield 表达式处暂停 GEN_CLOSE 执行结束,生成器停止