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

参考:

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()               #释放公共锁

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是笔者学习廖雪峰Python3教程的笔记,在此感谢廖老师的教程让我们这些初学者能够一步一步的进行下去.如果读者...
    相关函数阅读 5,577评论 1 8
  • 进程与线程的区别 现在,多核CPU已经非常普及了,但是,即使过去的单核CPU,也可以执行多任务。由于CPU执行代码...
    苏糊阅读 792评论 0 2
  • 当一个系统访问量上来的时候,不只是数据库性能瓶颈问题了,数据库数据安全也会浮现,这时候合理使用数据库锁机制就显得异...
    初来的雨天阅读 3,629评论 0 22
  • Demo代码和引用知识点都参考自 《理解Python并发编程一篇就够了|PoolExecutor篇》--董伟明 或...
    蒋狗阅读 16,357评论 1 2
  • 两位朋友好久不见,问:最近忙什么?答:瞎忙!一声瞎忙道出了人到中年的迷茫和心累! 上有老,老人身体健康是作...
    郭相麟阅读 103评论 0 0