برای استفاده از ماژول multiprocessing
، ابتدا باید این ماژول را وارد کنیم و سپس فرایندهای جدیدی ایجاد کنیم. در اینجا یک نمونه کد ساده برای شروع آورده شده است:
import multiprocessing
def worker_function(num):
print(f"Process {num} is running")
if __name__ == "__main__":
processes = []
for i in range(4): # ایجاد ۴ فرایند
p = multiprocessing.Process(target=worker_function, args=(i,))
processes.append(p)
p.start()
for p in processes:
p.join() # منتظر پایان هر فرایند میمانیم
توضیح کد:
- در این کد، از
multiprocessing.Process
برای ایجاد فرایندهای جدید استفاده شده است. - هر فرایند یک تابع
worker_function
را اجرا میکند که یک شماره را چاپ میکند. - در نهایت، با استفاده از
join()
منتظر میمانیم تا همه فرایندها به اتمام برسند.
نکات مهم:
multiprocessing
از چندین پردازنده (CPU) استفاده میکند و هر فرایند بهطور مستقل اجرا میشود.- این ماژول مناسب برای پردازشهای CPU-intensive است، زیرا از محدودیتهای GIL (Global Interpreter Lock) که در
threading
وجود دارد، رهایی مییابیم.
ارتباط بین پردازشها:
برای تبادل داده بین پردازشها، میتوان از Queue
یا Pipe
استفاده کرد. این ابزارها اجازه میدهند که دادهها بین پردازشها بهصورت ایمن منتقل شوند.