def __init__(self, func, iterable, spawn=None):
from gevent.queue import Queue
Greenlet.__init__(self)
if spawn is not None:
self.spawn = spawn
self.func = func
self.iterable = iterable
self.queue = Queue()
self.count = 0
self.finished = False
self.rawlink(self._on_finish)
python类Queue()的实例源码
def __init__(self, func, iterable, spawn=None):
from gevent.queue import Queue
Greenlet.__init__(self)
if spawn is not None:
self.spawn = spawn
self.func = func
self.iterable = iterable
self.queue = Queue()
self.count = 0
self.waiting = [] # QQQ maybe deque will work faster there?
self.index = 0
self.maxindex = -1
self.finished = False
self.rawlink(self._on_finish)
def waitall(events):
# QQQ add timeout?
from gevent.queue import Queue
queue = Queue()
put = queue.put
try:
for event in events:
event.rawlink(put)
for _ in xrange(len(events)):
queue.get()
finally:
for event in events:
event.unlink(put)
def __init__(self, spawn, func, iterable):
from gevent.queue import Queue
Greenlet.__init__(self)
self.spawn = spawn
self.func = func
self.iterable = iterable
self.queue = Queue()
self.count = 0
def __init__(self):
self.inbox = Queue()
gevent.Greenlet.__init__(self)
def __init__(self):
self.queue = queue.Queue()
def __init__(self, func, iterable, spawn=None):
from gevent.queue import Queue
Greenlet.__init__(self)
if spawn is not None:
self.spawn = spawn
self.func = func
self.iterable = iterable
self.queue = Queue()
self.count = 0
self.rawlink(self._on_finish)
def __init__(self, func, iterable, spawn=None):
from gevent.queue import Queue
Greenlet.__init__(self)
if spawn is not None:
self.spawn = spawn
self.func = func
self.iterable = iterable
self.queue = Queue()
self.count = 0
self.waiting = [] # QQQ maybe deque will work faster there?
self.index = 0
self.maxindex = -1
self.rawlink(self._on_finish)
def __init__(self, func, iterable, spawn=None):
from gevent.queue import Queue
Greenlet.__init__(self)
if spawn is not None:
self.spawn = spawn
self.func = func
self.iterable = iterable
self.queue = Queue()
self.count = 0
self.finished = False
self.rawlink(self._on_finish)
def __init__(self, func, iterable, spawn=None):
from gevent.queue import Queue
Greenlet.__init__(self)
if spawn is not None:
self.spawn = spawn
self.func = func
self.iterable = iterable
self.queue = Queue()
self.count = 0
self.waiting = [] # QQQ maybe deque will work faster there?
self.index = 0
self.maxindex = -1
self.finished = False
self.rawlink(self._on_finish)
def waitall(events):
# QQQ add timeout?
from gevent.queue import Queue
queue = Queue()
put = queue.put
try:
for event in events:
event.rawlink(put)
for _ in xrange(len(events)):
queue.get()
finally:
for event in events:
event.unlink(put)
def __init__(self, spawn, func, iterable):
from gevent.queue import Queue
Greenlet.__init__(self)
self.spawn = spawn
self.func = func
self.iterable = iterable
self.queue = Queue()
self.count = 0
def __init__(self, gid, nid, pid, appname, actorname, instance, methodname):
self.gid = gid
self.nid = nid
self.pid = pid
self.appname = appname
self.actorname = actorname
self.instance = instance
self.methodname = methodname
self.methodQueueToActor = queue.Queue()
self.methodQueueFromActor = queue.Queue()
def __init__(self):
"""Create a :class:`SequentialGeventHandler` instance"""
self.callback_queue = Queue()
self._running = False
self._async = None
self._state_change = Semaphore()
self._workers = []
def __call__(self, environ, start_response):
self.environ = environ
uwsgi.websocket_handshake()
self._req_ctx = None
if hasattr(uwsgi, 'request_context'):
# uWSGI >= 2.1.x with support for api access across-greenlets
self._req_ctx = uwsgi.request_context()
else:
# use event and queue for sending messages
from gevent.event import Event
from gevent.queue import Queue
from gevent.select import select
self._event = Event()
self._send_queue = Queue()
# spawn a select greenlet
def select_greenlet_runner(fd, event):
"""Sets event when data becomes available to read on fd."""
while True:
event.set()
try:
select([fd], [], [])[0]
except ValueError:
break
self._select_greenlet = gevent.spawn(
select_greenlet_runner,
uwsgi.connection_fd(),
self._event)
self.app(self)
def use_gevent_with_queue():
queue = Queue()
pool = Pool(5)
for p in range(1, 7):
queue.put(p)
while pool.free_count():
sleep(0.1)
pool.spawn(save_search_result_with_queue, queue)
pool.join()
def use_gevent_with_queue():
queue = Queue()
pool = Pool(5)
for p in range(1, 7):
put_new_page(p, queue)
while pool.free_count():
sleep(0.1)
pool.spawn(save_search_result_with_queue, queue)
pool.join()
def __init__(self, machine):
self.machine = machine
self.event_result_q = Queue(maxsize=1)
def _new_queue(*args, **kwargs):
from six.moves.queue import Queue
return Queue(*args, **kwargs)
def _new_gevent_queue(*args, **kwargs):
from gevent.queue import Queue
return Queue(*args, **kwargs)