进程锁 Lock
切换视频源:

进程锁 Lock

作者: Ryan Gao 编辑: 莫烦 发布于: 2016-01-01

学习资料:

这次我们讲进程锁的运用。

不加进程锁

让我们看看没有加进程锁时会产生什么样的结果。

在上面的代码中,我们定义了一个共享变量v,两个进程都可以对它进行操作。 在job()中我们想让v每隔0.1秒输出一次累加num的结果,但是在两个进程p1p2 中设定了不同的累加值。所以接下来让我们来看下这两个进程是否会出现冲突。

运行一下:

我们可以看到,进程1和进程2在相互抢着使用共享内存v

加进程锁

为了解决上述不同进程抢共享资源的问题,我们可以用加进程锁来解决。

首先需要定义一个进程锁

然后将进程锁的信息传入各个进程中

job()中设置进程锁的使用,保证运行时一个进程的对锁内内容的独占

完整代码:

运行一下,让我们看看是否还会出现抢占资源的情况:

显然,进程锁保证了进程p1的完整运行,然后才进行了进程p2的运行


降低知识传递的门槛

莫烦经常从互联网上学习知识,开源分享的人是我学习的榜样。 他们的行为也改变了我对教育的态度: 降低知识传递的门槛免费 奉献我的所学正是受这种态度的影响。 【支持莫烦】 能让我感到认同,我也更有理由坚持下去。

我组建了微信群,欢迎大家加入,交流经验,提出问题,互相帮持。 扫码后,请一定备注"莫烦",否则我不会同意你的入群申请。

wechat

    多进程 (Multiprocessing)