Articles of multithreading

Enlazar objetos Python arbitrarios a sesiones CherryPy

Estoy usando CherryPy para hacer un frontend basado en web para SymPy que usa una biblioteca de procesos asíncronos en el lado del servidor para permitir el procesamiento de múltiples solicitudes a la vez sin esperar a que se complete cada una. Para permitir que la interfaz funcione como se espera, estoy usando un proceso […]

Solicitudes de Python, advertencia: urllib3.connectionpool: El grupo de conexiones está lleno

Estoy usando la biblioteca de solicitudes en Python 3 y, a pesar de mis mejores esfuerzos, no puedo hacer que desaparezca la siguiente advertencia: ADVERTENCIA: requests.packages.urllib3.connectionpool: El grupo de conexiones está lleno, descartando la conexión: myorganization.zendesk.com Estoy usando solicitudes en un entorno multiproceso para obtener y publicar archivos json simultáneamente en un solo host , […]

¿Cómo puedo procesar imágenes con OpenCV en paralelo usando multiprocesamiento?

Tengo un conjunto de imágenes en una carpeta que quiero preprocesar usando algunas funciones de OpenCV. La función detectAndaligncrop toma una ruta de la imagen y la procesa mediante OpenCV y devuelve la imagen de utput. Puedo hacerlo usando: for image_path in files_list: cropped_image, _=detectAndaligncrop(im) cv2.imwrite(“ouput_folder/{}”.format(os.path.basename(image_path)),cropped_im*255.) Sin embargo esto no funciona: jobs=[] for im_no, im […]

¿Cómo sale esto mientras el bucle sale?

Entonces, ¿cómo sale este código de la instrucción while cuando se inicia el hilo? (Por favor no considere sangría) class ThreadUrl(threading.Thread): “””Threaded Url Grab””” def __init__(self, queue, out_queue): threading.Thread.__init__(self) self.queue = queue self.out_queue = out_queue def run(self): while True: #grabs host from queue host = self.queue.get() #grabs urls of hosts and then grabs chunk of […]

tratando de dividir el búfer de descarga de archivos en hilos separados

Estoy tratando de descargar el búfer del archivo en 5 subprocesos pero parece que se está confundiendo. from numpy import arange import requests from threading import Thread import urllib2 url = ‘http://pymotw.com/2/urllib/index.html’ sizeInBytes = r = requests.head(url, headers={‘Accept-Encoding’: ‘identity’}).headers[‘content-length’] splitBy = 5 splits = arange(splitBy + 1) * (float(sizeInBytes)/splitBy) dataLst = [] def bufferSplit(url, idx, […]

Creación de hilos recursivos en python.

Estoy intentando implementar una serie de Fibonacci recursiva que devuelve el valor en un índice. Es una tarea y debe hacerse utilizando subprocesos múltiples. Esto es lo que he hecho hasta ahora. Mi pregunta es ¿cómo agrego los resultados de live_thread1 y live_thread2 ? Los hilos deben crearse en cada nivel de la recursión. def […]

Acelerar el algoritmo de geolocalización en Python

Tengo un conjunto de 100k de ubicaciones geográficas (lat / lon) y una cuadrícula hexogonal (4k polígonos). Mi objective es calcular el número total de puntos que se encuentran dentro de cada polígono. Mi algoritmo actual usa 2 para que los bucles recorran todos los puntos geográficos y todos los polígonos, lo cual es muy […]

Reducir el tiempo de ejecución en la generación de listas enormes

Soy bastante nuevo en Python, y estoy tratando de escribir algunas listas enormes (con letras al azar dentro). En realidad, me lleva alrededor de 75 a 80 segundos en mi máquina para 2,000,000 líneas. import timeit import random, string global_tab = [] global_nb_loop = 2000000 print(“Generate %d lines” % global_nb_loop) global_tab = [] for x […]

XML-RPC devuelve valor antes de ejecutar todo el código de función

Tengo servidor XML-RPC: import time import xmlrpclib from SimpleXMLRPCServer import SimpleXMLRPCServer class Worker(object): def start_work(self): # is it possible do return value to client here? self.do_work() return ‘we started!’ def do_work(self): while(True): print ‘I\’m doing work…’ time.sleep(3) if __name__ == ‘__main__’: port = 8080 server = SimpleXMLRPCServer((“localhost”, port)) print “Listening on port %s…” % port […]

¿Por qué los hilos aumentan el tiempo de procesamiento?

Estaba trabajando en la multitarea de una simulación básica de DLA 2-D. La Agregación Limitada por Difusión (DLA) es cuando hay partículas que realizan un recorrido aleatorio y un agregado cuando tocan el agregado actual. En la simulación, tengo 10.000 partículas caminando en una dirección aleatoria en cada paso. Yo uso un grupo de trabajadores […]