Как запустить 2 потока?



class Queue(object):
   def __init__(self,size =5):
      self._size = size
      self._queue = []
      self._mutex = threading.RLock()
      self._empty = threading.Condition(self._mutex)
      self._full = threading.Condition(self._mutex)

   def get(self):
      with self._empty:
         if len(self._queue) == 0 :
            self._empty.wait()
         c = self._queue.pop(0) 
         self._full.notify()
         return c
   def put(self,val):
      with self._full:
         if len(self._queue) >= self._size:
            self._full.wait()

         self._queue.append(val)
         self._empty.notify()
   

вожу 5 раз Queue.put('что-нибудь') и потом все блокируется. Писать в консоль могу, я вот выполнить код уже нет.

Каким образом я могу выполнить Queue.get(), чтобы self._full проснулся и проверил условие?


Ответы (0 шт):