36 lines
757 B
Python
36 lines
757 B
Python
#-*- encoding:utf-8 -*-
|
|
|
|
'''
|
|
@Author : dingjiawen
|
|
@Date : 2023/10/17 21:08
|
|
@Usage : Lock相关的类:访问临界资源(共享资源)时互斥
|
|
@Desc :
|
|
'''
|
|
|
|
'''
|
|
参考:
|
|
[1] https://cuiqingcai.com/3335.html
|
|
'''
|
|
|
|
from multiprocessing import Process, Lock
|
|
import time
|
|
|
|
|
|
class MyProcess(Process):
|
|
def __init__(self, loop, lock):
|
|
Process.__init__(self)
|
|
self.loop = loop
|
|
self.lock = lock
|
|
|
|
def run(self):
|
|
for count in range(self.loop):
|
|
time.sleep(0.1)
|
|
self.lock.acquire()
|
|
print('Pid: ' + str(self.pid) + ' LoopCount: ' + str(count))
|
|
self.lock.release()
|
|
|
|
if __name__ == '__main__':
|
|
lock = Lock()
|
|
for i in range(10, 15):
|
|
p = MyProcess(i, lock)
|
|
p.start() |