Python多进程间同步互斥方法lock

 时间:2026-02-14 01:00:05

1、from multiprocessing import Lock

创建 进程锁对象lock = Lock()相关方法:lock.acquire() 给临界区上锁lock.release() 给临界区解锁说明:具体实现上 acquire() 为一个条件阻塞函数,当有任意一个进程先进行了acquire操作后,其他进程再企图进行acquire操作时就会阻塞,直到lock对象被 release 后其他进程才可进行下次acquire操作

2、具体示例:

from multiprocessing import Process,Lock

import time,sys

def worker1(stream):

   lock.acquire() # 加锁

   for i in range(5):

       time.sleep(1)

       stream.write("Lock acquired via\n")

   lock.release()#解锁

def worker2(stream):

   # lock.acquire()

   with lock:    #加锁 语句块结束即解锁

       for i in range(5):

           time.sleep(1)

           stream.write("Lock acquired directly\n")

   # lock.release()

lock = Lock()

#sys.stdout为所有进程都拥有的资源

w1 = Process(target=worker1,args=(sys.stdout,))

w2 = Process(target=worker2,args=(sys.stdout,))

w1.start()

w2.start()

w1.join()

w2.join()

  • deepin linux如何快速使用samba服务共享文件
  • linuxmint kde桌面环境鼠标怎么改为双击
  • 工控交换机和工业交换机的区别
  • C# 如何设置打印机属性
  • Word365如何绘制流程图?
  • 热门搜索
    企事业单位是什么意思 meet是什么意思 你会爱我到什么时候 身份证过期补办需要什么资料 肚子大是什么原因 十月是什么星座 手麻是什么原因 1942年属什么生肖 备案是什么意思 荷花什么时候开