تفاوت بین Runnable و Thread

فهرست مطالب:

تفاوت بین Runnable و Thread
تفاوت بین Runnable و Thread

تصویری: تفاوت بین Runnable و Thread

تصویری: تفاوت بین Runnable و Thread
تصویری: #88 Runnable vs Thread in Java 2024, دسامبر
Anonim

تفاوت کلیدی – Runnable در مقابل Thread

یک برنامه در حال اجرا به عنوان یک فرآیند شناخته می شود. فرآیند را می توان به چندین زیر فرآیند تقسیم کرد. به عنوان مثال، مایکروسافت ورد یک فرآیند است. در عین حال غلط املایی و دستور زبان را بررسی می کند. این یک فرآیند فرعی است. این فرآیندهای فرعی به عنوان thread شناخته می شوند. Multithreading فرآیند اجرای چند رشته به طور همزمان است. برنامه های کاربردی رشته ای را می توان با استفاده از زبان های برنامه نویسی مختلف ساخت. Runnable و Thread با برنامه نویسی جاوا مرتبط هستند. دو روش در جاوا برای ایجاد thread با پیاده سازی یک رابط Runnable یا گسترش کلاس Thread وجود دارد.هنگام پیاده‌سازی Runnable، بسیاری از رشته‌ها می‌توانند یک شی thread را به اشتراک بگذارند در حالی که در کلاس Extending Thread، هر رشته دارای یک شی منحصر به فرد مرتبط با خود است. این تفاوت اصلی بین Runnable و Thread است.

Runnable چیست؟

یک موضوع از برخی وضعیت ها عبور می کند. "جدید" آغاز چرخه زندگی نخ است. پس از اینکه متد start() یک رشته جدید را فراخوانی کرد، قابل اجرا می شود. اگر زمان‌بندی رشته رشته را انتخاب کند، به حالت در حال اجرا منتقل می‌شود. در صورتی که آن رشته برای انجام یک وظیفه منتظر رشته دیگری باشد، رشته منتظر وضعیت است. پس از اینکه موضوع کار را کامل کرد، به حالت پایان می رود.

یک رشته را می توان با استفاده از رابط Runnable پیاده سازی کرد. به برنامه زیر مراجعه کنید.

تفاوت بین Runnable و Thread
تفاوت بین Runnable و Thread

شکل 01: برنامه جاوا برای ایجاد یک رشته با استفاده از رابط Runnable

طبق برنامه فوق، کلاس Runnable Demo رابط Runnable را پیاده سازی می کند. متد run() داخل کلاسی است که رابط Runnable را پیاده سازی می کند. نقطه ورود نخ است. منطق در متد run() است. در برنامه اصلی، یک موضوع با تعریف یک شی که از کلاس Runnable Demo ایجاد می شود، ایجاد می شود. t1 است. متد start() با استفاده از t1 فراخوانی می شود.

به برنامه زیر مراجعه کنید.

تفاوت بین Runnable و Thread_Figure 02
تفاوت بین Runnable و Thread_Figure 02

شکل 02: برنامه جاوا برای ایجاد یک رشته برای اجرای یک حلقه، با پیاده سازی رابط Runnable

طبق مثال بالا، کلاس Runnable Demo رابط Runnable را پیاده سازی می کند. منطق اجرا با استفاده از thread در متد run() نوشته شده است. در برنامه اصلی، یک موضوع با تعریف یک شی که از کلاس Runnable Demo ایجاد می شود، ایجاد می شود.t1 است. سپس، متد start() با استفاده از t1 فراخوانی می شود.

Thread چیست؟

روش دیگر ایجاد thread با گسترش کلاس Thread است. از سه مرحله تشکیل شده است. اول این است که کلاس را به عنوان توسعه دهنده کلاس Thread اعلام کنیم. پس از آن، متد run() باید نوشته شود. توالی مراحلی را دارد که نخ باید اجرا کند. در نهایت شی thread ایجاد می شود و متد start() برای شروع اجرای thread فراخوانی می شود. به برنامه زیر مراجعه کنید.

تفاوت بین Runnable و Thread_Figure 03
تفاوت بین Runnable و Thread_Figure 03

شکل 03: برنامه جاوا که کلاس Thread را گسترش می دهد

طبق برنامه فوق، کلاس MyThread کلاس Thread را گسترش می دهد. این روش اجرا را لغو می کند. متد run() حاوی منطقی است که باید توسط thread اجرا شود. نقطه ورود به نخ است.سپس شی thread ایجاد می شود. thread1 است. موضوع با استفاده از متد start() شروع می شود. یک فراخوانی متد ()run را اجرا می کند.

نمونه برنامه ای از دو کلاس که کلاس Thread را گسترش می دهد به شرح زیر است.

تفاوت کلیدی بین Runnable و Thread
تفاوت کلیدی بین Runnable و Thread

شکل 04: برنامه جاوا با دو کلاس که کلاس Thread را گسترش می دهد

طبق برنامه فوق، هر دو کلاس A و B کلاس Thread را گسترش می دهند. هر دو کلاس پیاده سازی متد run() را دارند. رشته اصلی است که متد main() را اجرا می کند. قبل از اینکه نخ اصلی بمیرد، thread1 و thread2 را ایجاد و شروع می کند. تا زمانی که thread اصلی به انتهای روش اصلی برسد، سه رشته به صورت موازی در حال اجرا هستند. ترتیب خاصی وجود ندارد که در آن نخ ها خروجی بدهند. هنگامی که thread شروع می شود، تصمیم گیری در مورد دستوری که آنها اجرا می کنند دشوار است.آنها به طور مستقل اجرا می کنند.

شباهت‌های Runnable و Thread چیست؟

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

تفاوت بین Runnable و Thread چیست؟

Runnable vs Thread

Runnable یک رابط در جاوا برای ایجاد یک رشته است که به بسیاری از رشته ها اجازه می دهد تا یک شی رشته را به اشتراک بگذارند. thread یک کلاس در جاوا برای ایجاد یک رشته است که در آن هر رشته یک شی منحصر به فرد مرتبط با آن دارد.
حافظه
در Runnable، چندین رشته یک شی را به اشتراک می گذارند، بنابراین به حافظه کمتری نیاز دارند. در کلاس Thread، هر رشته یک شی منحصر به فرد ایجاد می کند، بنابراین به حافظه بیشتری نیاز دارد.
امکان گسترش
پس از اجرای رابط Runnable، می تواند یک کلاس را گسترش دهد. وراثت‌های چندگانه در جاوا پشتیبانی نمی‌شوند. پس از گسترش کلاس Thread، نمی تواند کلاس دیگری را گسترش دهد.
قابلیت نگهداری کد
رابط Runnable کد را قابل نگهداری تر می کند. در کلاس Thread، نگهداری زمان‌بر است.

خلاصه - Runnable در مقابل Thread

یک فرآیند به چندین فرآیند فرعی تقسیم می شود تا چندین کار را همزمان انجام دهد. این فرآیندهای فرعی به عنوان thread شناخته می شوند. نمونه سازی یک thread را می توان با پیاده سازی رابط Runnable یا با گسترش کلاس Thread انجام داد. گسترش کلاس Thread آسان است، اما تمرین برنامه نویسی شی گرا بهتر نیست.هنگام پیاده‌سازی Runnable، بسیاری از رشته‌ها می‌توانند یک شی thread را به اشتراک بگذارند، در حالی که در کلاس Thread توسعه‌دهنده، هر رشته دارای یک شی منحصر به فرد مرتبط با خود است. این تفاوت بین Runnable و Thread است. در کلاس Thread ایجاد چندین شیء می تواند حافظه بیشتری مصرف کند.

دانلود PDF Runnable vs Thread

می توانید نسخه PDF این مقاله را دانلود کنید و طبق یادداشت نقل قول برای اهداف آفلاین از آن استفاده کنید. لطفاً نسخه PDF را از اینجا دانلود کنید تفاوت بین Runnable و Thread

توصیه شده: