Articles of multiproceso de

Cómo utilizar el multiprocesamiento. Distribuya correctamente con PySide para crear una GUI sin locking

Intento utilizar el multiprocesamiento para crear una GUI sin locking. La función Multiprocessing.Pool.appy_async () permite agregar una función de callback, lo que facilita la actualización de la GUI principal después de completar una operación que requiere mucho tiempo. Sin embargo, el siguiente código aún se bloquea al hacer clic en button1. ¿Cómo puedo modificar esto […]

Python: ¿Por qué diferentes hilos obtienen su propia serie de valores de un generador?

Estoy aprendiendo multiproceso en Python. Quiero saber cómo proporcionar datos a varios subprocesos utilizando generadores. Esto es lo que escribí: import threading data = [i for i in xrange(100)] def generator(): for i in data: yield i class CountThread(threading.Thread): def __init__(self, name): threading.Thread.__init__(self) self.name = name def run(self): for i in generator(): print ‘{0} {1}’.format(self.name, […]

¿Cómo puedo hacer que este temporizador funcione para siempre?

from threading import Timer def hello(): print “hello, world” t = Timer(30.0, hello) t.start() Este código solo dispara el temporizador una vez. ¿Cómo puedo hacer que el temporizador funcione para siempre? Gracias, actualizado esto es correcto : import time,sys def hello(): while True: print “Hello, Word!” sys.stdout.flush() time.sleep(2.0) hello() y esto: from threading import Timer […]

ejecutar y finalizar mediante progtwigción un proceso por lotes de larga ejecución en Python

He estado buscando una manera de iniciar y terminar un “trabajo por lotes” de larga duración en python. En este momento estoy usando “os.system ()” para iniciar un trabajo por lotes de larga ejecución dentro de cada proceso secundario. Como habrás adivinado, “os.system ()” genera un nuevo proceso dentro de ese proceso hijo (¿proceso de […]

Cómo finalizar el progtwig que se ejecuta después de un tiempo determinado en Python

Me gustaría que mi progtwig Python ejecute un algoritmo durante un número determinado de segundos y luego imprima el mejor resultado hasta el momento. ¿Cual es la mejor manera de hacerlo? Intenté lo siguiente pero no funcionó (el progtwig siguió ejecutándose después de la impresión): def printBestResult(self): print(self.bestResult) sys.exit() def findBestResult(self,time): self.t = threading.Timer(time, self.printBestResult) […]

Escritura simultánea en el mismo archivo usando hilos y procesos.

¿Cuál es la solución correcta para estar seguro de que el archivo nunca se dañará al usar muchos procesos y subprocesos? Versión para hilos, que cuidan los errores de apertura. lock = threading.RLock() with lock: try: f = open(file, ‘a’) try: f.write(‘sth’) finally: f.close() # try close in any circumstances if open passed except: pass […]

Error con multiprocesamiento, atexit y datos globales.

Lo siento de antemano, esto va a ser largo … Posiblemente relacionado: Python Multiprocessing atexit Error “Error en atexit._run_exitfuncs” Definitivamente relacionado: Mapa paralelo de Python (multiprocessing.Pool.map) con datos globales Interrupciones del teclado con el grupo de multiprocesamiento de python Aquí hay un script “simple” que pirateé para ilustrar mi problema … import time import multiprocessing […]

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 […]

Python PyQT: ¿Cómo llamar a una función GUI desde un subproceso de trabajo?

Tengo un gui pyqt y estoy llamando a un proceso largo (ffmpeg) que puse en un hilo separado para no bloquear el gui. Luego deseo actualizar una barra de progreso cuando finalice un comando de una lista más larga de comandos. El problema es que no puedo llamar a una función en el subproceso de […]