Callable در جاوا (Callable Interface in java)

در این قسمت تیم کدگیت را با آموزش Callable در جاوا همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:

  1. Thread
  2. ThreadPool
  3. متد در جاوا
  4. Constructor
  5. Arraylist
  6. For در جاوا
  7. مدیریت استثناها

Callable Interface

در آموزش‌های گذشته، Thread را تعریف و مثالهای متنوعی در این حوزه زدیم. در تمامی مثال‌های گذشته از کلاس Thread یا اینترفیس Runnable استفاده شد. نکته ای که در تمامی این مثالها نهفته بود، Thread و Runnable مقداری را برنمیگردانند. از نسخه پنجم جاوا، دو Interface به نام Callable و Future تعریف شدند که با همکاری هم، مقداری را از یک Thread برمیگردانند.

اگر کلاسی، اینترفیس Callable را implements کند می‌تواند به Threadpool اضافه شود. Callable متدی به نام Call دارد که شبیه به متد Run در Thread است. دو تفاوت عمده متد Run و Call را میتوان بازگردانی مقدار و Thrown Exception دانست (هر دو ویژگی در متد Run وجود ندارد).

وقتی یک Callable را به threadpool میدهیم یک شی از جنس اینترفیس Future باز میگرداند. این شی شبیه به Thread است و به ما اطلاع میدهد که چه موقع Callable ما مقداری را باز می‌گرداند.

مثال Callable در جاوا

کلاسی به نام Processor داریم که Callable را implements کرده است. این کلاس یک عدد به عنوان id دریافت کرده و بعد از گذشت 1 ثانیه Id را به عنوان یک رشته بر‌میگرداند. کد Callable در جاوا به صورت زیر است:

تست Callable در جاوا

برای تست کد بالا،کد Main زیر راب بزنید:

در کد بالا یک Threadpool ایجاد کردیم. یک Arraylist نیز ساختیم از جنس Future. در Future مقدار بازگشتی هر Processor ذخیره می‌شود. در آخر یک حلقه For نوشتیم که مقادیر Future را چاپ کند.

پسورد: www.codegate.ir

 

دسته : java, همزمانی در جاوا (MultiThreading)

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz