Async چیست؟

Async چیست؟
مقالات

Async چیست؟

Async چیست؟دنیای برنامه‌نویسی و طراحی سایت دنیای جالبی است. دنیایی که زبان‌های برنامه‌نویسی و قابلیت‌ها و عملکردهایشان کم‌کم پیشرفت کردند و بهتر شدند. اگر بشنوید که برنامه‌نویسی امکان دارد همگام باشد یا ناهمگام  (Synchronous Programming or  Asynchronous Programming)، چه چیز به ذهن شما می‌آید؟ اگر بشنوید تابعی می‌تواند ناهمگام باشد، چه؟ چرا چنین چیزهایی باید در برنامه‌نویسی مهم باشد؟ بالاخره برنامه‌نویس کدها را می‌نویسند و مرورگر هم آن‌ها را اجرا می‌کند.

بگذارید قبل‌از توضیح بیشتر مثالی بزنم. وقتی می‌رویم بانک، باید نوبت بگیریم. ولی شماره‌ها (نوبت‌ها) براساس کاری که ما در بانک می‌خواهیم انجام دهیم، فرق می‌کند. یعنی نوبت‌ها به‌ترتیب نیست. اگر من کارم وازیر وجه باشد، شماره‌ام می‌شود ۵ و شما که کارتان بانکداری الکترونیک است شماره‌ی ۱. پس شما زودتر از من می‌روید و کارتان را انجام می‌دهید. من باید منتظر باشم تا ۴ نفر جلوی من کارشان تمام شود و بروند تا نوبت به من برسد.

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

 مرورگر چطور کدها را می‌خواند؟ با چه ترتیبی؟ آیا حتما باید از خط اول شروع کند و به‌ترتیب بیاید تا آخر؟ یعنی نمی‌شود ترتیب رعایت نشود و کدی زودتر از بقیه اجرا شود؟ اساسا چرا باید ترتیب اجرای کدها مهم باشد؟

این بحث اصلا ساده نیست. در این محتوا می‌خوام به سوالاتی که طرح شد جواب بدهم و درباره‌ی ترتیب اجرای کدها (نوبت) حرف بزنم.در ادامه این مقاله از تدریس24 همراه ما باشید.

برنامه نویسی Synchronous چیست؟

Async چیست؟برای درک مفهوم برنامه نویسی غیرهمزمان بهتر است اول برنامه نویسی همگام یا Synchronous را بشناسیم. در این روش کدهای برنامه نویس پشت سر هم و به صورت خطی اجرا می‌شوند. یعنی اگر برنامه ما 400 خط کد داشته باشد، دستورات و توابع از خط 1 و به نوبت اجرا می‌شوند تا زمانی که به خط 400 برسیم و اجرای برنامه تمام شود. در این روش از برنامه نویسی دستورات باید به ترتیب اجرا شوند و تا زمانی که تابع “الف” اجرا نشده نمی‌توان سراغ تابع “ب” رفت.

Async چیست؟گفتن چند نکته به شما کمک می‌کند بیشتر با این نوع از برنامه نویسی آشنا شوید. اولین مورد درباره ترجمه کلمه Synchronous به فارسی بوده که کمی گمراه کننده است. با جستجو در چند دیکشنری معتبر به چنین نتایجی می‌رسیم: Synchronous: هم زمان، همگاه، واقع شونده بطور هم زمان. می‌بینید که تمام این کلمات اشاره به مفهومی به نام “زمان” دارند. ولی در این روش همه چیز به زمان خلاصه نشده و لزوما نباید همه چیز را در در زمان خلاصه کنیم. بلکه منظور از Synchronous این است که کدها پشت سر هم اجرا می‌شوند که این مورد می‌تواند به موارد دیگری به جز زمان هم وابسته باشد. پس مراقب باشید ترجمه این کلمه شما را گمراه نکند.

Async چیست؟نکته دیگر مربوط به خوب بودن یا بد بودن این روش است. نباید اینطور فکر کنیم که با روی کار آمدن Asynchronous دیگر فاتحه Synchronous خوانده شده و باید استفاده از آن را کنار بگذاریم. در کل نمی‌توان به یک تکنولوژی برچسب خوب یا بد زد. باید ببینیم این تکنولوژی کجا کاربرد دارد و چه قابلیت هایی دارد. در روش Synchronous هم اوضاع به همین شکل بوده و اگر در جای درست استفاده شود نتایج شگفت انگیزی به دنبال خواهد داشت.

Async چیست؟
آیا برنامه نویسی Asynchronous حتما سرعت برنامه ما را افزایش می‌دهد؟

Async چیست؟هیچ تضمینی وجود ندارد که استفاده از چند Control Flow و خارج کردن برنامه از حالت خطی و ترتیبی سرعت اجرای برنامه شما را افزایش دهد. در واقع این مدل اجرایی گاهی تاثیری در سرعت برنامه نداشته و حتی ممکن است در بعضی از موارد سرعت برنامه را کاهش هم بدهد. اگر به خاطر افزایش سرعت اجرا تصمیم گرفته اید از Asynchronous استفاده کنید باید یک تجدید نظر در تصمیم خود داشته باشید.

Async چیست؟اگر این تکنولوژی در جای مناسب به کار بگیرید می‌تواند نتایج بسیار خوبی به دنبال داشته باشد. در واقع هر بار که کد می‌نویسید باید از خودتان این سوال را بپرسید که استفاده از Asynchronous مفید خواهد بود یا خیر. مثلا می‌توانید بپرسید بهتر است در این قسمت از برنامه وقتی در حال خواندن فایلی هستم باید در پشت صحنه یک پردازش هم اجرا کنم یا خیر. اگر جواب مثبت بود استفاده از Asynchronous می‌تواند کمک بزرگی به حساب بیاید.

حرف آخر

Async چیست؟در این مطلب بررسی کردیم که مفهوم Asynchronous چیست و چه کاربردهایی دارد. اول راجع به Synchronous صحبت کرده و گفتیم که در این روش برنامه ما به صورت خط به خط اجرا می‌شود. در مقابل به مدل Asynchronous رسیدیم که این ترتیب زمانی را به هم می‌ریخت تا برنامه ما برای یک وقفه طولانی معطل نشده و پردازش‌های دیگر را مدیریت کند.

Async چیست؟همینطور اشاره ای به کاربرد آن در تکنولوژی دات نت فریم ورک داشتیم. شاید در نگاه اول پردازش‌های نامتقارن و ناهمگام جذاب به نظر برسند اما باید با توجه به شرایط برنامه خود تصمیمی بگیرید که از آن استفاده کنید یا خیر.

دیدگاه خود را اینجا قرار دهید

نشانی ایمیل شما منتشر نخواهد شد.

اعضا

‫بروز رسانی

سمیرا مردانی's بروزسانی مشخصات انجام شد ماه 9, 3 هفته قبل

محمد جواد محمدی's بروزسانی مشخصات انجام شد ماه 9, 3 هفته قبل

مریم نوری's بروزسانی مشخصات انجام شد ماه 9, 3 هفته قبل

محمد امین طاهری's بروزسانی مشخصات انجام شد ماه 9, 3 هفته قبل

نگار حجتی's بروزسانی مشخصات انجام شد ماه 9, 3 هفته قبل

فیلدهای نمایش داده شده را انتخاب کنید. دیگران مخفی خواهند شد. برای تنظیم مجدد سفارش ، بکشید و رها کنید.
  • عکس
  • شناسه محصول
  • امتیاز
  • قیمت
  • در انبار
  • موجودی
  • افزودن به سبد خرید
  • توضیحات
  • محتوا
  • عرض
  • اندازه
  • تنظیمات بیشتر
  • ویژگی ها
  • ویژگی های سفارشی
  • زمینه های دلخواه
برای پنهان کردن نوار مقایسه ، بیرون را کلیک کنید
مقایسه