这些天我试着用猴头贴。我发现,如果一个代码是猴子补丁,它会产生不同的线程标识. 这是否意味着monkey patch启动多线程,而不是多个协程?在
如果它启动了多线程,这就带来了竞争条件,不是吗?在
请帮忙,提前谢谢。在
我用了两个测试代码。在
没有monkey_patch(),阻止代码,但打印相同的线程ID。#!/usr/bin/env python
# encoding: utf-8
import eventlet
# comment monkey_patch
# eventlet.monkey_patch()
import time
import thread
workers=4
jobs = 5
record = {}
pool = eventlet.greenpool.GreenPool()
def do_work(index):
global record
record[index] = record.get(index, 0) + 1
# data = "worker=%s: %s \n" % (index, record[index])
# print data
# eventlet.greenthread.sleep(1)
# block
time.sleep(1)
def work(worker, jobs):
for x in xrange(0, jobs):
# print same thread id