self_example/Spider/线程相关/多进程/Lock.py

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()