Multithreading Python -Jobs zum gemeinsamen Staat
Posted: 21 Mar 2025, 09:26
Ich denke, es fehlt mir das Verständnis für Multithreading in Python und die Online -Antworten, die mein schwaches Gehirn verletzen. Ich habe die folgende, die Funktion "son_function " ist eine Funktion, die ein Wörterbuch ausführt, das einen anderen (grundlegenden) Webschaber ausführt, das ein Wörterbuch oder nichts zurückgibt (es fehlerhaft).
Wie mache ich ihn so, dass dieser Zustand während des Ausführens auf mehreren Threads aktualisiert wird, oder ist das nicht möglich?
Code: Select all
from multiprocessing import Pool
def some_function(job_dict: dict) -> dict:
# some function
class RunJobs:
def __init__(self, jobs: list[dict], threads=1):
self.jobs, self.threads, self.state = jobs, threads, []
def _run_sequentially(self):
for job in self.jobs:
self.state.append(some_function(job))
def _run_multithreaded(self):
pool = Pool(self.threads)
job_queue = []
for job in self.jobs:
job_queue.append(pool.apply_async(some_function, args=(job)))
pool.close()
pool.join()
for job in job_queue:
self.state.append(job.get())
def run(self):
try:
if self.threads == 1:
self._run_sequentially()
else:
self._run_multithreaded()
except KeyInterrupt:
print(self.state)