تفاوت ASYNCHRONOUS و SYNCHRONOUS در برنامه نویسی


امروز می خوام راجع به یک مفهوم که خیلی در برنامه نویسی استفاده میشه صحبت کنم.

مفهومی که در هر زبانی استفاده میشه و همه ی برنامه نویسا با اون درگیرن

تفاوت Asynchronous و Synchronous در برنامه نویسی

پس با من همراه باشید…

تفاوت Asynchronous و Synchronous در برنامه نویسی
تفاوت Asynchronous و Synchronous در برنامه نویسی

برنامه نویسی Async :

خب اگر توی گوگل async رو سرچ کنید با کلمه  غیر هم زمان رو به رو خواهید شد.

اما این غیر هم زمان بودن به چه معناست ؟ در ادامه با چند مثال و توضیح مختصر این مفهوم رو کاملا درک خواهید کرد.

قبل از هر چیزی باید بگم که این غیر هم زمان بودن به معنی اهمیت زمان برای ما نیست .

در واقع موضوعی که برای ما مهم هست ترتیب اجرای دستورات هست.

وقتی می‌گوییم کدهای ما حالت Asynchronous دارند، به این معنی است که ترتیب اجرای آن‌ها پشت سر هم و به شکلی کاملا قابل پیش‌بینی اتفاق می‌افتد به عنوان مثال کد زیر را در نظر بگیرید:


let i = ۰ // declare a mutable variable

i += ۱ // add one to the variable

console.log(i) // log the variable

همانطور که ما انتظار داریم کد ها خط به خط اجرا خواهند شد یعنی:

اول  : let i = 0

دوم : i +=1

در آخر هم دستور log اجرا میشود .

پس ما اگر هر تعداد کدی بعد از این کدها داشته باشیم تا این بلاک از کدها اجرا نشوند.

کدهای دیگر اجرا نخواهند شد .

تفاوت Asynchronous و Synchronous در برنامه نویسی
تفاوت Asynchronous و Synchronous در برنامه نویسی

برنامه نویسی Sync :

این بار اگر توی گوگل sync رو سرچ کنید با کلمه هم زمان رو به رو خواهید شد.

خب دوباره باید بررسی کنیم که این هم زمان بودن به چه معناست .

در این مدل برخلاف روش ASynchronous کدهای ما پشت سر هم اجرا نمی شوند و به اصطلاح ترتیب کدها غیرخطی است .

اول یک مثال غیر برنامه نویسی می زنم و بعد به مفهومش در یرنامه نویسی می پردازم.

فرض کنید شما به یک رستوران می روید و در یک میز می نشینید .

مسئول سفارش به سر میز شما میاد و سفارشتون رو می گیره و به آشپزخونه سفارش شما رو تحویل میده.

و تا آماده سازی غذای شما به سراغ میز های دیگه میره و سفارش اون هارو هم می گیره و به آشپز خونه تحویل میده.

و به همین ترتیب ادامه پیدا می کنه .

همین اتفاق هم به یک نوعی در کد های ما میوفته

فرض کنید ۳ بلاک کد دارید ابتدا بلاک ۱ و بلاک ۲ و بلاک ۳

در این مدل برنامه نویسی بر خلاف توقع ما در حالی که کدهای داخل بلاک ۱ در حال اجرا شدن هست کد های داخل بلا ۲ و ۳ هم درحال پردازش هستند.

این همان مفهوم هم زمان بودن می باشد .