thread metodos example asyncio python multithreading queue

metodos - Python Queue get()/task_done() problema



queue python 3 (1)

No, queue.get() saca el elemento de la cola. Después de hacer eso, puede hacer lo que quiera con él, siempre que el productor trabaje como debería y no lo toque más. Se llama a queue.task_done() solo para notificar a la cola que ha terminado con algo (ni siquiera conoce el elemento específico, solo cuenta los elementos no terminados en la cola), por lo que queue.join() conoce el trabajo. Está terminado.

Mi lado consumidor de la cola:

m = queue.get() queue.task_done() <rest of the program>

preguntas:

  1. ¿ task_done() hace que la cola salga de la cola y libere los bloqueos que el consumidor tiene en la cola?

  2. Necesito usar m durante el resto del programa. ¿es seguro o debo copiarlo antes de llamar a task_done() ? o, m es utilizable despues de task_done() ?

sea ​​feliz