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

در این مقاله از سایت ارگن بررسی کردیم که مفهوم Asynchronous چیست و چه کاربردهایی دارد. Asynchronous چیست؟در طی سالها برنامه نویسی دچار تغییرات و پیشرفت های زیادی شده و هر روز شاهد پیشرفت های زبان های برنامه نویسی و تکنولوژی هستیم، در این مقاله از سایت ارگن میخواهیم به سراغ مفهومی برویم به نام برنامه نویسی غیرهمزمان یا Asynchronous و مواردی را که برنامه نویسی غیرهمزمان سعی در حل آن دارد بپردازیم. پس از مطالعه این مقاله متوجه میشوید که Asynchronous چقدر در برنامه نویسی مهم است و چه کاربرد هایی دارد؛ابتدا به بررسی برنامه نویسی همزمان میپردازیم.برنامه نویسی همزمان یا Synchronous چیست؟برای این که برنامه نویسی غیرهمزمان بهتر درک شود بهتر است که اول توضیحی در مورد برنامه نویسی همزمان داشته باشیم، در روش Synchronous کد های برنامه نویس خط به خط از بالا به پایین اجرا میشوند، یعنی این که از 800 خط کد نوشته شده باشد، اجرای این کد ها از خط اول شروع میشود و خط به خط اجرا میشود تا به خط 800 برسد و در نهایت برنامه متوقف شود، در این صورت اگر دستورات الزاما باید به ترتیب اجرا شوند و تا زمانی که دستورات خط 20 اجرا نشده باشد سراغ اجرای دستورات خط 21 نمیرود.اگر به ترجمه فارسی Synchronous توجه کنیم به معنی همزمان می باشد، درصورتی که لزوما همه چیز به زمان خلاصه نمیشود بلکه منظور از برنامه نویسی همزمان یا Synchronous این است که کد ها پست سر هم اجرا میشوند.اما نکته ای باید به آن توجه کنید این که شاید شما فکر کنید که با روی کار آمدن برنامه نویسی غیرهمزمان یا Asynchronous دیگر کار برنامه نویسی همزمان یا Synchronous تمام است، درصورتی که اینطور نیست و هر دو تکنولوژی بنا به نیاز برنامه نویس استفاده میشوند و هر کدام در جای درست خود استفاده میشود.برنامه‌نویسی‌غیرهمزمان‌یا‌Asynchronous چیست؟برنامه نویسی غیرهمزمان یا Asynchronous یک مدل برنامه نویسی است. در برنامه نویسی غیرهمزمان برعکس روش Synchronous که کد های به ترتیب و از بالا به پایین خط به خط اجرا میشدند اکنون کد ها به ترتیب و پشت سر هم اجرا نمی شوند و اجرا خط 21 وابسته به اجرای خط 20 نیست. برای مثال میتوانیم بگوییم که یک بخش برنامه در حال دانلود یک فایل میباشد، بخش دیگر درحال آپلود یک فایل و از آنجایی که اجرای کد ها به صورتخطی نیست این دو با یکدیگر تداخلی نخواهند داشت،اما شاید برایتان سوالی پیش آید که چرا ترتیب اجرای کد ها را در برنامه بهم میریزیم؟:/از آنجایی که امروزه cpu ها بسیار قدرتمند شده اند و دارای هسته های متعددی هستند پس زیاد معقول نیست تا cpu را حتی یک لحظه بیکار بگذاریم، با کمک روش برنامه نویسی غیرهمزمان یا Asynchronous میتوانیم نهایت استفاده را از cpu داشته باشیم و چندین کار را در کنار یکدیگر انجام دهیم.تا این جا متوجه شدیم که Asynchronous دقیقا نقطه مقابل Synchronous قرار دارد.برنامه نویسی غیرهمزمان تاثیری در سرعت برنامه دارد؟درست است که در برنامه نویسی غیرهمزمان چندین کار را باهم اجرا میکنیم اما هیچ تضمینی وجود ندارد که بگوییم که حتما سرعت اجرای برنامه بالا میرود، حتی امکان دارد در بعضی موارد که نیاز به پردازش های سنگین دارد سرعت اجرای برنامه کاهش پیدا کند، پس اگر برای بالا برد سرعت برنامه خود میخواهید از Asynchronous استفاده کنید باید بگویم که باید تجدید نظر کنید، استفاده از برنامه نویسی غیرهمزمان در جای مناسب خود میتواند نتایج بسیار خوبی در بر داشته باشد.نتیجه گیریدر این مقاله از سایت ارگن بررسی کردیم که مفهوم Asynchronous چیست و چه کاربردهایی دارد.در ابتدا در مورد برنامه نویسی همزمان یا Synchronous بحث کردیم و گفتیم که کد ها در این روش به صورت خطی اجرا میشوند، در ادامه هم به بررسی مدل برنامه نویسی غیرهمزمان یا Asynchronous پرداخیتم و گفتیم که در این روش کد ها به ترتیب اجرا نمی شوند و ترتیب اجرا را بهم زدیم و cpu را کنترل کردیم.در کا استفاده از برنامه نویسی غیرهمزمان در جای مناسب خود بسیار لذت بخش خواهد بود.اگر برنامه نویس سی شارپ هستید (اگر میخواهید سی شارپ را یادبگیرید در دوره آموزش سی شارپ سایت ارگن شرکت کنید) میتوانید با استفاده از این دوره برنامه نویسی غیرهمزمان در سی شارپ را آموزش ببینید: آموزش برنامه نویسی غیر همزمان در سی شارپ