进程锁 Lock
作者: 编辑: 莫烦 发布于: 2016-01-01
学习资料:
这次我们讲进程锁的运用。
不加进程锁¶
让我们看看没有加进程锁时会产生什么样的结果。
在上面的代码中,我们定义了一个共享变量v,两个进程都可以对它进行操作。 在job()中我们想让v每隔0.1秒输出一次累加num的结果,但是在两个进程p1和p2 中设定了不同的累加值。所以接下来让我们来看下这两个进程是否会出现冲突。
运行一下:
我们可以看到,进程1和进程2在相互抢着使用共享内存v。
加进程锁¶
为了解决上述不同进程抢共享资源的问题,我们可以用加进程锁来解决。
首先需要定义一个进程锁
然后将进程锁的信息传入各个进程中
在job()中设置进程锁的使用,保证运行时一个进程的对锁内内容的独占
完整代码:
运行一下,让我们看看是否还会出现抢占资源的情况:
显然,进程锁保证了进程p1的完整运行,然后才进行了进程p2的运行