استفاده از daemon در multiprocessing

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/01/02
  • تعداد بازدید: 18

پیوست های این درس:


فرآیند دیمن (daemon) در multiprocessing چیست؟

یک فرآیند دیمن در multiprocessing، فرآیندی است که در پس‌زمینه اجرا شده و وابسته به فرآیند اصلی است. این یعنی زمانی که فرآیند اصلی پایان یابد، تمامی فرآیندهای دیمن نیز به‌طور خودکار متوقف خواهند شد. برخلاف فرآیندهای معمولی که به‌صورت مستقل اجرا می‌شوند، فرآیندهای دیمن برای انجام وظایف پس‌زمینه‌ای مثل مانیتورینگ، ثبت لاگ، یا پردازش‌های دوره‌ای کاربرد دارند.

چرا از فرآیند دیمن استفاده کنیم؟

  • مدیریت خودکار: نیازی به متوقف کردن دستی فرآیند نیست، چون با اتمام برنامه اصلی، خودش متوقف می‌شود.
  • اجرای وظایف پس‌زمینه‌ای: مانند لاگ‌گیری، بروزرسانی دیتا، یا اجرای پردازش‌های مستمر بدون مسدود کردن برنامه اصلی.
  • بهینه‌سازی عملکرد: باعث می‌شود وظایف غیرضروری در پس‌زمینه اجرا شوند و عملکرد برنامه اصلی کاهش نیابد.

مثال: فرآیند دیمن که در پس‌زمینه اجرا می‌شود

import multiprocessing
import time

def background_task():
    while True:
        print("Running in background...")
        time.sleep(2)

if __name__ == "__main__":
    process = multiprocessing.Process(target=background_task)
    process.daemon = True  # تنظیم فرآیند به‌عنوان دیمن
    process.start()

    time.sleep(5)  # اجرای برنامه اصلی
    print("Main process exiting...")

عملکرد این کد:

  • فرآیند دیمن هر ۲ ثانیه یک پیام را چاپ می‌کند.
  • بعد از ۵ ثانیه، برنامه اصلی تمام شده و فرآیند دیمن نیز متوقف می‌شود.

تأثیر استفاده از daemon در برنامه‌ها

  • در سیستم‌های چندپردازشی، برای اجرای وظایف در پس‌زمینه بدون تأثیر بر فرآیندهای اصلی استفاده می‌شود.
  • در پردازش داده، می‌توان از فرآیندهای دیمن برای دریافت، فیلتر کردن، یا ذخیره اطلاعات در لحظه استفاده کرد.
  • در سرورها، می‌تواند برای پردازش‌های دوره‌ای مانند پاکسازی حافظه کش یا بروزرسانی داده‌ها مفید باشد.

اگر نیاز به یک فرآیند مستقل داشته باشید که بعد از پایان برنامه اصلی همچنان اجرا شود، نباید از daemon استفاده کنید و باید فرآیند را به‌صورت معمولی راه‌اندازی کنید.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است می توانید اولین نفر باشید