Articles of cola de

Implementar una cola usando dos stacks de Python

He estado repasando algunas de las muchas preguntas de la entrevista de encoding. Me preguntaba cómo harías para implementar una cola usando dos stacks en Python. Python no es mi lenguaje más fuerte, así que necesito toda la ayuda que pueda obtener. Al igual que las funciones de cola, salida y salida.

threadth de python Productor-consumidor de cola con thread-safe

Estoy utilizando subprocesos y cola para recuperar la URL y almacenar en la base de datos Sólo quiero un hilo para hacer el trabajo de almacenamiento. Así que escribo el código de la siguiente manera: import threading import time import Queue site_count = 10 fetch_thread_count = 2 site_queue = Queue.Queue() proxy_array=[] class FetchThread(threading.Thread): def __init__(self,site_queue,proxy_array): […]

Python multiprocessing.Queue deadlocks on put and get

Tengo problemas de interlocking con este código: def _entropy_split_parallel(data_train, answers_train, weights): CPUS = 1 #multiprocessing.cpu_count() NUMBER_TASKS = len(data_train[0]) processes = [] multi_list = zip(data_train, answers_train, weights) task_queue = multiprocessing.Queue() done_queue = multiprocessing.Queue() for feature_index in xrange(NUMBER_TASKS): task_queue.put(feature_index) for i in xrange(CPUS): process = multiprocessing.Process(target=_worker, args=(multi_list, task_queue, done_queue)) processes.append(process) process.start() min_entropy = None best_feature = None […]

Subproceso múltiple de Python con una salida de recuperación de grupo / cola tan pronto como uno termina y ejecuta el siguiente trabajo en la cola

Actualmente estoy lanzando un subproceso y analizando stdout sobre la marcha sin esperar a que termine para analizar stdout. for sample in all_samples: my_tool_subprocess = subprocess.Popen(‘mytool {}’.format(sample),shell=True, stdout=subprocess.PIPE) line = True while line: myline = my_tool_subprocess.stdout.readline() #here I parse stdout.. En mi script, realizo esta acción varias veces, de hecho, dependiendo del número de muestras […]

Python: Queue.Empty Manejo de excepciones

Después de un breve debate con alguien sobre el manejo de excepciones en Python, provocado por el manejo de un objeto de cola, pensé que lo tiraría por ahí … MÉTODO 1: import Queue q = Queue.Queue() try: task=q.get(False) #Opt 1: Handle task here and call q.task_done() except Queue.Empty: #Handle empty queue here pass #Opt2: […]

Python utilizando múltiples procesadores

Digamos que tengo una gran lista de música de longitud variable que se debe convertir o imágenes de distintos tamaños que se deben cambiar de tamaño o algo así. El orden no importa, por lo que es perfecto para dividir entre varios procesadores. Si uso el multiprocesamiento. La función de mapa de Pool parece que […]

python pool apply_async y map_async no se bloquean en la cola completa

Soy bastante nuevo en Python. Estoy usando el módulo de multiprocesamiento para leer líneas de texto en una entrada estándar, convertirlas de alguna manera y escribirlas en una base de datos. Aquí hay un fragmento de mi código: batch = [] pool = multiprocessing.Pool(20) i = 0 for i, content in enumerate(sys.stdin): batch.append(content) if len(batch) […]

Tamaño máximo para multiprocesamiento.

Estoy trabajando en un proyecto bastante grande en Python que requiere que una de las tareas en segundo plano de computación intensiva se descargue a otro núcleo, para que el servicio principal no se ralentice. Me he encontrado con un comportamiento aparentemente extraño cuando uso el multiprocessing.Queue para comunicar los resultados del proceso de trabajo. […]

¿Cómo iterar los elementos Queue.Queue en Python?

¿Alguien conoce una forma pythonica de iterar sobre los elementos de una Queue.Queue sin eliminarlos de la Cola? Tengo un progtwig de tipo productor / consumidor donde los elementos que se van a procesar se pasan utilizando una Queue.Queue , y quiero poder imprimir cuáles son los elementos restantes. ¿Algunas ideas?

Python 2.6 envía el objeto de conexión a través de Queue / Pipe / etc

Dado este error (Python Issue 4892) que da lugar al siguiente error: >>> import multiprocessing >>> multiprocessing.allow_connection_pickling() >>> q = multiprocessing.Queue() >>> p = multiprocessing.Pipe() >>> q.put(p) >>> q.get() Traceback (most recent call last): File “”, line 1, in File “/…/python2.6/multiprocessing/queues.py”, line 91, in get res = self._recv() TypeError: Required argument ‘handle’ (pos 1) not […]