Skip to content

Instantly share code, notes, and snippets.

@c0ldlimit
Created September 2, 2014 19:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save c0ldlimit/3c71e0d2f7edf907f0fe to your computer and use it in GitHub Desktop.
Save c0ldlimit/3c71e0d2f7edf907f0fe to your computer and use it in GitHub Desktop.
import gevent
from gevent.queue import Queue
tasks = Queue()
def worker(n, work_time):
while not tasks.empty():
task = tasks.get()
print("Worker %s got tasks %s" % (n, task))
gevent.sleep(work_time) # releases the greenlet to go do something else
print("Quitting time %s" % n)
def boss():
for i in xrange(1,25):
tasks.put_nowait(i)
gevent.spawn(boss).join()
gevent.joinall([
gevent.spawn(lambda args: worker(*args), ('steve', 0.1)),
gevent.spawn(lambda args: worker(*args), ('james', 0.2)),
gevent.spawn(lambda args: worker(*args), ('nancy', 0.3)),
])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment