1. ==和is进行比较
python对象包含三个要素:id(身份标识)、type(数据类型)、value(值)
== 为判断value值 而is判断id()
2.协程—gevent延时切换的理解
相当于 洗衣机洗衣服的同时自己去做饭
import gevent
import time
from gevent import monkey
"""
遇到延时就切换
"""
monkey.patch_all() # 打补丁 将程序中用到的耗时操作的代码,换为gevent中自己实现的代码
def f1(n):
for i in range(n):
print("----1----")
print(gevent.getcurrent(), i)
# print("----3----")
time.sleep(5)
# gevent.sleep(5)
def f2(n):
for i in range(n):
print("----2----")
print(gevent.getcurrent(), i)
# print("----3----")
time.sleep(10)
# gevent.sleep(5
def f3(n):
for i in range(n):
print("----3----")
print(gevent.getcurrent(), i)
# print("----3----")
time.sleep(15)
# gevent.sleep(5
# print("----1----")
# g1 = gevent.spawn(f, 5) # 不执行
# g2 = gevent.spawn(f, 5)
# g3 = gevent.spawn(f, 5)
# print("----4----")
# g1.join() # 开始执行
# g2.join()
# g3.join()
# print("----5----")
gevent.joinall([
gevent.spawn(f1, 5),
gevent.spawn(f2, 5),
gevent.spawn(f3, 5)
])
/home/wangchao/Downloads/anaconda3/bin/python3.7 /home/wangchao/windows/Demo/python/High/04-协程/hm_06_gevent.py
----1----
<Greenlet at 0x7f1e7eff0d08: f1(5)> 0
----2----
<Greenlet at 0x7f1e7eff0e18: f2(5)> 0
----3----
<Greenlet at 0x7f1e7e9fd048: f3(5)> 0
----1----
<Greenlet at 0x7f1e7eff0d08: f1(5)> 1
----2----
<Greenlet at 0x7f1e7eff0e18: f2(5)> 1
----1----
<Greenlet at 0x7f1e7eff0d08: f1(5)> 2
----3----
<Greenlet at 0x7f1e7e9fd048: f3(5)> 1
----1----
<Greenlet at 0x7f1e7eff0d08: f1(5)> 3
----2----
<Greenlet at 0x7f1e7eff0e18: f2(5)> 2
----1----
<Greenlet at 0x7f1e7eff0d08: f1(5)> 4
----3----
<Greenlet at 0x7f1e7e9fd048: f3(5)> 2
----2----
<Greenlet at 0x7f1e7eff0e18: f2(5)> 3
----2----
<Greenlet at 0x7f1e7eff0e18: f2(5)> 4
----3----
<Greenlet at 0x7f1e7e9fd048: f3(5)> 3
----3----
<Greenlet at 0x7f1e7e9fd048: f3(5)> 4
Process finished with exit code 0