_Lock hilo Proceso

Cerradura de seguridad de los datos de protección, sino provocar la ejecución de la cerradura parte en serie, reduciendo la eficiencia

- Después de la cerradura libera el bloqueo a ser considerado, no se recomienda

de multiprocesamiento importación Proceso, Bloqueo
 de importación tiempo 

def trabajo (bloqueo): 
    mutex.acquire () 
    print ( " destino% s se está ejecutando " % os.getpid) () 
    time.sleep ( 2 )
     print ( " destino% s se hace " % os.getpid ()) 
    mutex.release () 
si  __name__ == " __main__ " : 
    mutex = Lock ()
     para i en alcance (3 ):
         p= Proceso (target = trabajo, args = (mutex,)) #mutex需要传参 
        p.start () 
    print ( " 主进程" )
 ''' 
target 10879 se está ejecutando 
主进程
de destino 10879 se hace 
diana 10880 se ejecuta 
destino 10880 se hace 
diana 10883 se está ejecutando 
objetivo se hace 10883 

'''
# 线程加锁
de enhebrar la importación de rosca, de bloqueo, current_thread
 importación tiempo 

def trabajo (): 
    mutex.acquire () 
    print ( " destino% s se está ejecutando " % . Current_thread () getName ()) 
    time.sleep ( 2 )
     de impresión ( " destino% s se hace " % current_thread () getName ()). 
    mutex.release () 
si  __name__ == " __main__ " : 
    mutex = Lock ()
     para i ende alcance (3 ):
         t = Thread (target = trabajo) #mutex不需要传参 
        t.Start () 
    de impresión ( " 主线程" )
 ''' 
主线程
objetivo Thread-615 se está ejecutando 
objetivo Thread-615 se hace 
subproceso de destino -616 está ejecutando 
objetivo Rosca-616 se realiza 
objetivo Rosca-617 está funcionando 
Tema-617 de destino se hace 
'''

 

Supongo que te gusta

Origin www.cnblogs.com/hapyygril/p/12589694.html
Recomendado
Clasificación