多进程访问共享资源锁的使用(python)

2017-08-30  本文已影响86人  Alapha

参考:

http://blog.csdn.net/moxiaomomo/article/details/11640439

http://www.cnblogs.com/guobaoyuan/p/6832470.html

#the output is:

#wait_for_event_timeout: starting

#wait_for_event: starting

#wait_for_event_timeout: e.is_set()->False

#main: event is set

#wait_for_event: e.is_set()->True

----------------------------------------------------

关于同步锁的使用:

1. 先设置一个进程间共享的锁,作为进程回调处理的入参

      lock = multiprocessing.Lock()

      proc1 = multiprocessing.Process(target=worker_with, args=(lock, f))

      proc2 = multiprocessing.Process(target=worker_no_with, args=(lock, f))

2. 进程对共享资源操作的时候,先获取锁,然后操作共享变量,然后再释放锁

      lock.acquire()               #获取公共锁,如果锁被占用,则阻塞在这里,等待锁的释放

      # do somthing,   比如打开写入文本,修改共享内存中的变量等。。

      ......

      lock.release()               #释放公共锁

上一篇下一篇

猜你喜欢

热点阅读