【发布时间】:2013-02-01 15:59:32
【问题描述】:
我认为在使用多个线程时我应该使用 Lock 对象来保护自定义类,但是,因为 Python 使用 GIL 来确保在任何给定时间只有一个线程在运行,这是否意味着不需要使用 Lock 来保护像列表这样的内置类型?例如,
num_list = []
def consumer():
while True:
if len(num_list) > 0:
num = num_list.pop()
print num
return
def producer():
num_list.append(1)
consumer_thread = threading.Thread(target = consumer)
producer_thread = threading.Thread(target = producer)
consumer_thread.start()
producer_thread.start()
【问题讨论】:
-
你为什么不生成一个运行不止一次的工作示例.....
标签: python