进程锁 Lock - 多进程 (Multiprocessing) | 莫烦Python
切换视频源:

进程锁 Lock

作者: Ryan Gao 编辑: 莫烦 2016-11-03

学习资料:

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

不加进程锁

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

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

运行一下:

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

加进程锁

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

首先需要定义一个进程锁

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

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

完整代码:

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

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


降低知识传递的门槛

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

    多进程 (Multiprocessing)