من علی ضیایی هستم برنامه نویس وبسایت و اپلیکیشن
تفاوت 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 اجرا میشود .
پس ما اگر هر تعداد کدی بعد از این کدها داشته باشیم تا این بلاک از کدها اجرا نشوند.
کدهای دیگر اجرا نخواهند شد .
برنامه نویسی Sync :
این بار اگر توی گوگل sync رو سرچ کنید با کلمه هم زمان رو به رو خواهید شد.
خب دوباره باید بررسی کنیم که این هم زمان بودن به چه معناست .
در این مدل برخلاف روش ASynchronous کدهای ما پشت سر هم اجرا نمی شوند و به اصطلاح ترتیب کدها غیرخطی است .
اول یک مثال غیر برنامه نویسی می زنم و بعد به مفهومش در یرنامه نویسی می پردازم.
فرض کنید شما به یک رستوران می روید و در یک میز می نشینید .
مسئول سفارش به سر میز شما میاد و سفارشتون رو می گیره و به آشپزخونه سفارش شما رو تحویل میده.
و تا آماده سازی غذای شما به سراغ میز های دیگه میره و سفارش اون هارو هم می گیره و به آشپز خونه تحویل میده.
و به همین ترتیب ادامه پیدا می کنه .
همین اتفاق هم به یک نوعی در کد های ما میوفته
فرض کنید ۳ بلاک کد دارید ابتدا بلاک ۱ و بلاک ۲ و بلاک ۳
در این مدل برنامه نویسی بر خلاف توقع ما در حالی که کدهای داخل بلاک ۱ در حال اجرا شدن هست کد های داخل بلا ۲ و ۳ هم درحال پردازش هستند.
این همان مفهوم هم زمان بودن می باشد .
مطلبی دیگر از این انتشارات
تجاربی که هر برنامه نویس مبتدی باید بداند
مطلبی دیگر از این انتشارات
رمزگشایی فایل های اپلیکیشن طاقچه
مطلبی دیگر از این انتشارات
20 منبع بسیار خوب و کاربردی برای یادگیری زبان برنامه نویسی Kotlin