各位看官不要纠结这段代码的作用。。。
这段代码中有两个注释,加注释和不加注释为什么不一样?
import threading
import time
def producer():
while True:
time.sleep(0.2)
lock.acquire()
print('producer acquire lock')
time.sleep(0.1)
time.sleep(0.1)
print('producer release lock')
lock.release()
def consumer():
while True:
time.sleep(0.1)
#lock.acquire()
print('consumer eating')
#lock.release()
if __name__ == "__main__":
lock = threading.RLock()
t1 = threading.Thread(target=producer, args=())
t2 = threading.Thread(target=consumer, args=())
t1.start()
t2.start()
t1.join()
t2.join()
加注释运行结果:
consumer eating
producer acquire lock
consumer eating
consumer eating
producer release lock
consumer eating
consumer eating
producer acquire lock
不加注释运行结果:
consumer eating
producer acquire lock
producer release lock
consumer eating
consumer eating
producer acquire lock
producer release lock
我觉得加不加注释都应该是 “不加注释运行结果”,
即 producer 获取 lock 后,没有释放前,consumer 为什么还运行