Несколько вариантов:
-
How-To: 4 Essential Parts of Multiprocessing in Python (не подходит для синхронизации доступа к файлу, который используется часто, так как может привести к снижению производительности):
from multiprocessing import Lock, Pool
lock = Lock()
with lock:
driver = uc.Chrome(seleniumwire_options=wire_options, options=options)
-
Multiprocessing Manager Example in Python (подходит только для синхронизации доступа к простым объектам, таким как списки):
from multiprocessing import Manager, Pool
manager = Manager()
def get_whoer(proxy: str):
# ...
if __name__ == '__main__':
"""ip:port:login:password"""
with Pool(processes=2) as p:
p.map(get_whoer, proxy_list)
-
How Python Keeps Your Queues Thread-Safe (подходит для синхронизации доступа к любым объектам, но код немного сложнее):
from queue import Queue
from multiprocessing import Pool
queue = Queue()
def get_whoer(proxy: str):
# ...
if __name__ == '__main__':
"""ip:port:login:password"""
proxy_list = list(map(str.rstrip, open('proxy.txt').readlines()))
for proxy in proxy_list:
queue.put(proxy)
with Pool(processes=2) as p:
p.map(get_whoer, range(len(proxy_list)))