zoukankan      html  css  js  c++  java
  • 互斥锁

    进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,而共享带来的是竞争,竞争带来的结果就是错乱,无法保证数据的安全性。所以在  运行的时候需要通过加锁来对进程的限制,以保证数据的安全性,但是带来的是执行效率低下,有并发运行转成串行运行

    from multiprocessing import Process, Lock  #锁模块
    import time
    
    
    class Myprocess(Process):
    
        def __init__(self, name, mutex):
            super().__init__()
            self.name = name
            self.mutex = mutex
    
        def run(self):
            self.mutex.acquire()  #加锁
            print('%s is running 1' % self.name)
            time.sleep(1)
            print('%s is running 2' % self.name)
            time.sleep(1)
            print('%s is running 3' % self.name)
            self.mutex.release()  #释放
    
    
    if __name__ == '__main__':
        mutex = Lock()  #实例化锁对象
        for i in range(3):
            p = Myprocess('子进程%s' % i, mutex)
            p.start()
  • 相关阅读:
    关于sifari兼容性的一个问题
    HTML标签的应用(新手)
    HTML标签的应用(新手)
    未完成的开锁动画演示
    HTML标签的应用(新手)
    HTML新手向
    C++
    STL之set
    C++输入输出
    提升一下逼格
  • 原文地址:https://www.cnblogs.com/zhengyiqun1992/p/10395940.html
Copyright © 2011-2022 走看看