Articles of Python multihilo

Datos globales de Django para hilos

Tengo un objeto de datos globales compartidos en mi servidor django de procesos múltiples de proceso único, un objeto que se usa con frecuencia, pero se calcula con poca frecuencia. El cálculo lleva mucho tiempo, por lo que quiero compartir los resultados. Pensé que funcionaría usar LocalMemCache de django para estos datos simples. Curiosamente, parece […]

ThreadPoolExecutor: ¿cómo limitar el tamaño máximo de la cola?

Estoy usando la clase ThreadPoolExecutor del paquete concurrent.futures def some_func(arg): # does some heavy lifting # outputs some results from concurrent.futures import ThreadPoolExecutor with ThreadPoolExecutor(max_workers=1) as executor: for arg in range(10000000): future = executor.submit(some_func, arg) pero necesito limitar el tamaño de la cola de alguna manera, ya que no quiero que se creen millones de […]

Archivo multihilo leído en python

import threading def read_file(): f = open(‘text.txt’) for line in f: print line.strip() ,’ : ‘, threading.current_thread().getName() if __name__ == ‘__main__’: threads = [] for i in range(15): t = threading.Thread(target=read_file) threads.append(t) t.start() Pregunta: ¿Cada subproceso leerá cada línea solo una vez del archivo de arriba o hay posibilidades de que un subproceso dado pueda […]

¿Cómo desechar múltiples páginas html en paralelo con beautifulsoup en python?

Estoy haciendo una aplicación webscraping en Python con el framework web Django. Necesito descartar múltiples consultas usando la biblioteca de beautifulsoup. Aquí está la instantánea del código que he escrito: for url in websites: r = requests.get(url) soup = BeautifulSoup(r.content) links = soup.find_all(“a”, {“class”:”dev-link”}) De hecho, aquí, el raspado de la página web se realiza […]

¿Cómo implementar subprocesos para ejecutar dos comandos de shell bash en python?

Tengo que grabar un archivo wav y al mismo tiempo tengo que analizarlo con sox. Estoy usando el archivo de tipo fifo para esta operación. Así que aquí necesito comenzar 2 hilos al mismo tiempo, pero incluso si uso los hilos no puedo lograr lo que quiero hacer. Siempre uno ejecutando primero y luego el […]

Compruebe si el hilo principal sigue vivo de otro hilo.

¿Cómo puedo verificar si el subproceso principal está vivo desde otro subproceso (no daemon, secundario)? El subproceso secundario es un subproceso no daemon y me gustaría comprobar si el subproceso principal todavía se está ejecutando o no, y detener este subproceso no daemon según el resultado. (Hacer el daemon de subprocesos no es bueno para […]

python: tkinter para mostrar el video de la cámara web y hacer un escaneo QR

He estado tratando de crear una ventana de nivel superior de tkinter que transmita video desde la cámara web y realice un escaneo QR. Obtuve este código de escaneo QR de SO y otro código que solo actualiza las imágenes de la cámara web en lugar de transmitir el video en una etiqueta tkinter. y […]

Limitar el número de solicitudes HTTP por segundo en Python

He escrito una secuencia de comandos que obtiene las URL de un archivo y envía las solicitudes HTTP a todas las URL al mismo tiempo. Ahora quiero limitar el número de solicitudes HTTP por segundo y el ancho de banda por interfaz ( eth0 , eth1 , etc.) en una sesión. ¿Hay alguna manera de […]

Python – agregando al mismo archivo desde múltiples hilos

Estoy escribiendo una aplicación que agrega líneas al mismo archivo desde varios subprocesos. Tengo un problema en el que algunas líneas se agregan sin una nueva línea. ¿Alguna solución para esto? class PathThread(threading.Thread): def __init__(self, queue): threading.Thread.__init__(self) self.queue = queue def printfiles(self, p): for path, dirs, files in os.walk(p): for f in files: print(f, file=output) […]

Un ejemplo multi-threading del python GIL.

He leído un poco acerca de cuán “malo” es este negocio de GIL en Python al escribir código de múltiples subprocesos, pero nunca he visto un ejemplo. ¿Podría alguien darme un ejemplo básico de cuándo la GIL causa problemas al usar subprocesos? ¡Gracias!