Cola de subprocesos múltiples para leer el mismo archivo

1. Cola (Cola)
El módulo Cola de Python proporciona clases de cola síncronas y seguras para subprocesos, incluida la cola FIFO (primero en entrar, primero en salir), la cola LIFO (último en entrar, primero en salir) LifoQueue y la cola de prioridad PriorityQueue. Todas estas colas implementan primitivas de bloqueo y se pueden utilizar directamente en varios subprocesos. Puede utilizar colas para lograr la sincronización entre subprocesos.

Métodos comunes:

Queue.qsize () devuelve el tamaño de la cola
Queue.empty () Si la cola está vacía, devuelve True, de lo contrario False
Queue.full () Si la cola está llena, devuelve True, en caso contrario False, Queue.full corresponde al tamaño de tamaño máximo
Queue.get ([block [, timeout]]) Obtener la cola, tiempo de espera de tiempo de espera
Queue.get_nowait () es equivalente a Queue.get (False), método sin bloqueo
Queue.put (elemento) escribe en la cola, tiempo de espera de tiempo de espera
Queue task_done () Después de completar una tarea, la función Queue.task_done () envía una señal a la cola donde se ha completado la tarea. Cada llamada get () obtiene una tarea, y luego la llamada task_done () le dice a la cola que la tarea ha sido procesada.
Queue.join () en realidad significa esperar hasta que la cola esté vacía antes de realizar otras operaciones

importar subprocesos 
cola de importación

def file_queue ():
    global q
    import xlrd
    wb = xlrd.open_workbook ("./ haha.xls")
    ws = wb.sheet_by_name ("Sheet1")
    para i en rango (ws.nrows):
        q.put (ws.row_values (I))

def work ():
    q global
    para i en el rango (7):
        print (threading.currentThread (). name)
        if q.qsize () == 0:
            continue
        print (q.get ())

def func ():
    work ()
q = queue.LifoQueue (maxsize = 30)
list1 = []
file_queue ()
for i in range (5):
    thread1 = threading.Thread (target = func)
    list1.append (thread1)
for i en list1:
    i.start ()
para i en list1:
    i.join ()

Supongo que te gusta

Origin blog.csdn.net/weixin_45131345/article/details/106896125
Recomendado
Clasificación