Mein Verständnis ist, dass, sobald ich gevent.monkey.patch_all() aufgerufen habe, das Standard-Threading-Modul geändert wurde, um Greenlets anstelle von Python-Threads zu verwenden. Wenn ich also meine Anwendung in Form von Python-Threads, Sperren, Semaphoren usw. schreibe und dann patch_all aufruft, bekomme ich dann den vollen Nutzen von gevent, oder verliere ich etwas im Vergleich zu den expliziten gevent-Äquivalenten? Die Motivation hinter dieser Frage ist, dass ich ein Modul schreibe, das einige Threads/Greenlets verwendet, und ich entscheide, ob es sinnvoll ist, zwischen gevent und threading zu wechseln, oder ob ich Threading einfach verwenden kann + patch_all ohne etwas zu verlieren.Nachteil der Verwendung von Patched Threading vs native Gevent Greenlets?
Um es in Code zu setzen, ist dies ...
def myfunction():
print 'ohai'
Greenlet.spawn(myfunction)
... anders dazu?
import gevent.monkey
gevent.monkey.patch_all()
def mythread(threading.Thread):
def run(self):
print 'ohai'
mythread().start()