آشنایی با مفهوم Thread در زبان برنامهنویسی جاوا
در این آموزش یکی از مباحث بسیار مهم در زبان برنامهنویسی جاوا تحت عنوان Thread را معرفی کرده و مقدمهای از کاربرد آن در اجرای تَسکهای نوشتهشده در برنامههای جاوا را تشریح میکنیم. به طور کلی، میتوان گفت که تِرِدها دارای کاربردهای فراوانی هستند که از آن جمله میتوان به توسعۀ گیم، اپلیکیشنهای تحت وب و غیره اشاره کرد (جهت کسب اطلاعات بیشتر در رابطه با نحوۀ اجرای برنامه به صورت مالتیتِرِد به مقالۀ آشنایی با مفاهیم Thread ،Process و نحوۀ کارکرد Multithreading مراجعه نمایید.) در واقع، زمانی از تِرِدها در پروسهٔ توسعهٔ نرمافزار استفاده میکنیم که بخواهیم برنامهای طراحی کنیم تا در آن بیش از یک کار را به طور همزمان پیش ببریم که برای این منظور نیز کلاسی تحت عنوان Thread
در زبان برنامهنویسی جاوا تعبیه شده است.
حال برای درک بهتر مفهوم تِرِدها، مثالی را مد نظر قرار میدهیم بدین صورت که وقتی یک فایل ویدئویی را به صورت آنلاین تماشا میکنیم، نیازی نیست تا صبر کنیم تا فایل کاملاً بارگذاری شود بلکه پخش ویدئو شروع شده و همزمان با نمایش ویدئو بارگذاری بخشهای دیگر آن نیز انجام میشوند. به عبارت دیگر، دو کار نمایش ویدئو و بارگذاری آن به صورت همزمان صورت میگیرند که این موضوع دقیقاً به کاربرد تِرِدها در پیشبرد دو تَسک به صورت همزمان اشاره دارد.
در حقیقت، به طور خلاصه میتوان گفت که با استفاده از تِرِدها میتوانیم نرمافزاری طراحی کنیم تا به جای انتظار برای تکمیل انجام یک کار سپس آغاز کار بعدی، هر دو کار به صورت همزمان پیش روند که اهمیت چنین مسئلهای در توسعهٔ گیم دو چندان میگردد. از سوی دیگر، تِرِدها صرفاً در بازیسازی کاربرد نداشته و در حوزۀ اپلیکیشنهای تحت وب و دسکتاپ نیز کاربردهای فراوانی دارند. به طور مثال، فرض کنیم که یک اپلیکیشن تحت وب با زبان جاوا طراحی کردهایم که در نقش یک وب سرور بوده و وظیفۀ هندل کردن بیش از یک ریکوئست (درخواست) در آنِ واحد را دارا است که این کار به سادگی با استفاده از مفهوم تِرِدها در زبان جاوا امکانپذیر میباشد.
حال در ادامه قصد داریم تا ببینیم که چگونه میتوان به صورت عملی یک تِرِد در زبان برنامهنویسی جاوا ایجاد کرد و اجرای برنامهها با استفاده از چند تِرِد چه مزایایی دارا است. به طور کلی، میتوان گفت که پیادهسازی تِرِدها در زبان برنامهنویسی جاوا به دو روش مختلف امکانپذیر میباشد که عبارتند از:
- روش اول بدین صورت است که کلاسی ایجاد کرده سپس کلاس مذکور ویژگیهای خود را از کلاس Thread
در زبان جاوا به ارث میبرد.
- در روش دوم کلاسی ایجاد کرده و آن را از روی اینترفیسی تحت عنوان Runnable
ایمپلیمنت میکنیم که در چنین شرایطی میتوانیم بدون ارثبری از کلاس Thread
اقدام به ساخت تِرِد نماییم.
در ادامۀ این آموزش و به منظور درک سازوکار تِرِدها، هر دو روش را مورد بررسی قرار خواهیم داد.
در این آموزش به بررسی کاربرد تِرِدها در اجرای برنامه پرداخته و نحوۀ ایجاد یک تِرِد با بهکارگیری دو روش مختلف در زبان برنامهنویسی جاوا را آموختیم و دیدیم که چگونه میتوان با استفاده از هر یک از روشهای مذکور برنامهای را پیادهسازی کرد که به صورت مالتیتِرِد اجرا شود.
دانلود فایلهای تمرین