synchronous programming and asynchronous programming
کتابخانه الکترونیکی دیتا ساینس
برنامه نویسی ناهمزمان یا asynchronous programming فرآیندی است که به یک برنامه اجازه می دهد تا دستورالعمل یا کد دیگری را در حالی که بر دستورالعمل یا کد اولیه خود تمرکز می کند، اجرا کند. به عبارتی برنامه نویسی ناهمزمان روشی از برنامه نویسی کامپیوتری موازی است که این امکان را فراهم میکند تا فرآیند دیگری جدا از عملکرد اصلی برنامه، اجرا شود. پس از اتمام، میتواند اطلاعاتی را بازگردانی کند که این اطلاعات، ممکن است بر عملکرد اصلی تأثیر بگذارد. برنامه نویسی ناهمزمان اغلب به کاهش یا جلوگیری از زمان انتظار یا تاخیر در برنامه نویسی کامپیوتری با فعال کردن فرآیندها در پس زمینه برنامه اصلی کمک می کند.
Thread ها در برنامه نویسی ناهمزمان اغلب وظایف منفرد را در یک زمان به ترتیب انجام می دهند و این امکان وجود دارد که چندین نخ یا Tread برای اجرا، ایجاد کنیم. thread های متعدد اغلب در سیستمهایی با بیش از یک هسته و پردازنده رایج هستند. آنها می توانند به شما این امکان را بدهند که برنامه را در چندین thread برنامه ریزی کنید و وظایف بیشتری را همزمان انجام دهید.
برنامه نویسی ناهمزمان چندین مزیت دارد به مانند: بهبود عملکرد برنامه، تجربه کاربری بهتر.
برنامه نویسی ناهمزمان در مقابل برنامه نویسی همزمان
هر دو برنامه نویسی ناهمزمان و همزمان مفاهیم مشابهی را در زمینه گستردهتر برنامه نویسی کامپیوتری در بر میگیرند. برنامه نویسی همزمان یا متوالی زمانی است که وظایف به طور جداگانه یا یکی پس از دیگری انجام می شود. برنامه در حالی که کاری را انجام میدهد، مکث می کند و تنها زمانی پاسخ میدهد که نتیجه را دریافت کند. دارای یک مدل تک رشتهای یا thread است، به این معنی که تنها یک عمل را در یک زمان انجام می دهد.
برنامه نویسی ناهمزمان از این جهت متفاوت است که به چندین کار اجازه می دهد تا همزمان اجرا شوند و برنامه نویس اغلب میتواند مستقیماً این وظایف را مدیریت کند. این اجازه می دهد تا برنامه ها حتی پس از شروع یک عملی به اجرا ادامه دهند.
نمونه:
فرض کنید از شما درخواست کردهاند که سه گزارش آماده کنید: ۱. کاربرانی که در دو ماه گذشته ثبت نام کردهاند. ۲ . تراکنشهای تمامی کاربران در یک هفته اخیر
اگر برنامه شما فقط برنامه نویسی همزمان یا asynchronous programming، داشته باشد. باید اول لیست کاربران را تهیه کنید و بعد گزارش تراکنشها را تهیه نمایید. در حالی که در برنامه نویسی ناهمزمان میتوانید هر دو گزارش رو با هم اجرا کنید.
منبع: https://www.indeed.com/career-advice/career-development/asynchronous-programming