当前位置: 首页>>代码示例>>Python>>正文


Python Queue.clear方法代码示例

本文整理汇总了Python中queue.Queue.clear方法的典型用法代码示例。如果您正苦于以下问题:Python Queue.clear方法的具体用法?Python Queue.clear怎么用?Python Queue.clear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在queue.Queue的用法示例。


在下文中一共展示了Queue.clear方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_queue_clear

# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import clear [as 别名]
 def test_queue_clear(self):
   '''
   test the clear() method
   '''
   q = Queue()
   q.enqueue(3)
   q.enqueue(4)
   q.enqueue(13)
   q.clear()
   self.assertIsNone(q.head)
   self.assertIsNone(q.tail)
开发者ID:qdonnellan,项目名称:random_questions,代码行数:13,代码来源:queue_test.py

示例2: insert

# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import clear [as 别名]
  def insert(self, k, v):
    """Inserts a node into the binary tree. A node is inserted at the bottom
    most level using BFS to find the correct spot in order to keep the tree
    balanced.

    Time complexity: O(n)

    Keyword arguments:
    k - key of node
    v - value of node
    """

    node = BinaryNode(k, v)

    if not self.root:
      self.root = node
    else:
      # Perform BFS for the first empty spot to insert the new node
      queue = Queue()

      queue.enqueue(self.root)

      while not queue.is_empty():
        n = queue.dequeue()

        if n.left_child and n.right_child:
          # n is an internal node (keeps binary structure)
          queue.enqueue(n.left_child)
          queue.enqueue(n.right_child)
        else:
          # Add child
          if n.left_child:
            n.right_child = node
          else:
            n.left_child = node

          # Empty queue out as to not continue processing further nodes
          queue.clear()

    self.size += 1

    return node
开发者ID:Alexanderbez,项目名称:programming-challenges,代码行数:44,代码来源:binary_tree.py

示例3: TestStack

# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import clear [as 别名]
class TestStack(unittest.TestCase):

    def setUp(self):
        self.queue = Queue()

    def test_init(self):
        self.assertEqual(self.queue.get_size(), 0)
        new_queue = Queue("Bob")
        self.assertEqual(new_queue.get_size(), 1)

    def test_enqueue(self):
        self.queue.enqueue("Bob")
        self.assertEqual(self.queue.get_size(), 1)

    def test_dequeue(self):
        self.queue.enqueue("Bob")
        dequeued_item = self.queue.dequeue()
        self.assertEqual(dequeued_item, "Bob")
        another_dequeued_item = self.queue.dequeue()
        self.assertIsNone(another_dequeued_item)

    def test_peek(self):
        self.queue.enqueue("Bob")
        self.queue.enqueue("Bill")
        self.queue.enqueue("Boris")
        peeked_item = self.queue.peek()
        self.assertEqual(peeked_item, "Bob")

    def test_clear(self):
        for i in range(0, 100):
            self.queue.enqueue("Bob")
        self.assertEqual(self.queue.get_size(), 100)
        self.queue.clear()
        self.assertEqual(self.queue.get_size(), 0)

    def test_get_size(self):
        self.assertEqual(self.queue.get_size(), self.queue.linked_list.size)
开发者ID:beingadrian,项目名称:CS-Theory,代码行数:39,代码来源:test_queue.py

示例4: Connection

# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import clear [as 别名]
class Connection(object):
    """Abstracción de conexión. Maneja colas de entrada y salida de datos,
    y una funcion de estado (task). Maneja tambien el avance de la maquina de
    estados.
    """
    def __init__(self, fd, address=''):
        """Crea una conexión asociada al descriptor fd"""
        self.socket = fd
        self.task = None  # El estado de la maquina de estados
        self.input = Queue()
        self.output = Queue()
        # Esto se setea a true para pedir al proxy que desconecte
        self.remove = False
        self.address = address

    def fileno(self):
        """
        Número de descriptor del socket asociado.
        Este metodo tiene que existir y llamarse así
        para poder pasar instancias
        de esta clase a select.poll()
        """
        return self.socket.fileno()

    def direction(self):
        """
        Modo de la conexión, devuelve uno de las constantes DIR_*;
        también puede devolver None si el estado es el final
         y no hay datos para enviar.
        """
        # La cola de salida puede estar vacia por dos motivos:
        #   -1) Se enviaron todos los datos -> Remove es True
        #   -2) La cola de salida no esta lista AUN -> Sigue recibiendo
        if self.output.data == "":
            if self.remove:  # (1)
                return None  # El estado es el final
            else:  # (2)
                return DIR_READ  # Sigue recibiendo
        else:  # La cola de salida esta lista para enviarse
            return DIR_WRITE

    def recv(self):
        """
        Lee datos del socket y los pone en la cola de entrada.
        También maneja lo que pasa cuando el remoto se desconecta.
        Aqui va la unica llamada a recv() sobre sockets.
        """
        try:
            data = self.socket.recv(RECV_SIZE)  # Receive
            if data == "":  # El remoto se ha desconectado
                self.remove = True  # Hay que removerlo
            self.input.put(data)  # Encola los datos recibidos
        except socket_error:
            self.send_error(INTERNAL_ERROR, "Internal Error")
            self.remove = True

    def send(self):
        """Manda lo que se pueda de la cola de salida"""
        # Envia sended_size bytes
        sended_size = self.socket.send(self.output.data)
        # Elimina los datos enviados de la cola
        self.output.remove(sended_size)

    def close(self):
        """Cierra el socket. OJO que tambien hay que avisarle al proxy que nos
        borre.
        """
        self.socket.close()
        self.remove = True
        self.output.clear()

    def send_error(self, code, message):
        """Funcion auxiliar para mandar un mensaje de error"""
        logging.warning("Generating error response %s [%s]",
                        code, self.address)
        self.output.put("HTTP/1.1 %d %s\r\n" % (code, message))
        self.output.put("Content-Type: text/html\r\n")
        self.output.put("\r\n")
        self.output.put(
            "<body><h1>%d ERROR: %s</h1></body>\r\n" % (code, message))
        self.remove = True
开发者ID:laufernandez,项目名称:Redes,代码行数:83,代码来源:connection.py

示例5: Stream

# 需要导入模块: from queue import Queue [as 别名]
# 或者: from queue.Queue import clear [as 别名]
class Stream():
		# TODO use Threads for output distribution
		def __init__(self,stapModuleInstance, args = {}, interval = 0.1, withdraw=False):
			self.id				= id(self)
			self.args			= args
			self.log			= print if 'logStream' not in args else args['logStream']
			self.name			= stapModuleInstance.name
			self.queue			= Queue()			# the input queue
			self.receivers			= []
			self.interval			= interval			# check every x seconds for output in queue.
			self.withdraw			= withdraw			# if True, drop incomming input if we have no listeners
			self.thread			= Thread(target=self.run)
			self.thread.daemon		= True
			self.thread.running		= True
			self.thread.start()
			stapModuleInstance.queue	= self.queue

		def __str__(self):
			return "<Stream,name=%s,queue=%s,receivers=%s>" % (self.name, self.queue, self.receivers)
		
		def register(self,stapLabModuleInstance):
			if stapLabModuleInstance is not None:
				if stapLabModuleInstance not in self.receivers:
					self.receivers	+= [stapLabModuleInstance]
					stapLabModuleInstance.queue	= self.queue
					self.log("registered %s to %s" % (str(stapLabModuleInstance), self.name))
				else:
					self.log("%s already in receivers of Stream %s" % (stapLabModuleInstance.name, self))

		def unregister(self,module):
			if module is not None:
				try:
					self.receivers.remove(module)
					self.log("unregistered %s from %s" % (str(module), self.name))
				except ValueError:
					self.log("cannot unregister module %s to stream %s" %(module,self))

		def emtpyQueue(self):
			with self.queue.mutex:
				self.queue.clear()

		def run(self):
			self.log("%s entering mainLoop" % self)
			while self.thread.running:
				if not self.queue.empty():
					if len(self.receivers) > 0:
						data	= self.queue.get()
						for receiver in self.receivers:
							if receiver is not None:
								receiver.enqData(data)
					else:
						if self.withdraw:
							self.emptyQueue()

				for receiver in self.receivers:
					if not receiver.thread.running:
						self.unregister(receiver)

				sleep(self.interval)
			self.log("%s leaving mainLoop" % self)

		def stop(self):
			self.thread.running	= False
开发者ID:psychophoniac,项目名称:staplab,代码行数:65,代码来源:stream.py


注:本文中的queue.Queue.clear方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。