public class sample1 extends Thread
{
public static void main (String[] args)
{
sample1 thread1, thread2;
thread1 = new sample1 ();
thread2 = new sample1 ();
thread1.start(); //---->run اجرای خودکار بخش
thread2.start();
}
public void run()//-- > نوشتن کدهای مربوط به ترد
{
for (int i=0; i<10; i++)
{
System.out.println(getName()+" being executed.");
}
}
}
در مثال بالا کلاس اصلی برنامه sample1 نام دارد که کلمه کلیدی extends Thread در جلوی آن نشان دهنده این است که معرفی ترد های ما در این برنامه از نوع بسط کلاس Thread() می باشد. تردهای Thraed1 و Thread2 تردهایی هستند از نوع sample1.
در بخش run وظیفه ترد تعیین شده است یعنی هر ترد هنگامی که اجرا می شود ده بار نام خود را در خروجی چاپ می کند. برنامه با رسیدن به کد thread1=new sample1() ترد شماره یک از نوع sample1 را ایجاد می کند همانطور که قبلا توضیح داده شد سیستم به طور خودکار نام Threda-0 را برای این ترد در نظر می گیرد. با رسیدن به خط thread1.start() ترد اجرا می شود. این مراحل دقیقا برای ترد دوم نیز صورت می پذیرید و هر دو ترد بصوزت همزمان شروع به نمایش اسم خود در خروجی می نمایند.
اجرای این مثال به شما کمک می کند تا با روند سوئیچ شدن تردهای مختلف آشنا شوید بعد از اجرا آنچه در خروجی می بینید مانند زیر می باشد:
Thread-0 being executed.-->0 اجرای ترد
Thread-1 being executed.-->اجرای ترد 1 در این هنگام ترد 0 در حالت انتظار می باشد
Thread-0 being executed.-->اجرای ترد 0 در این هنگام ترد 1 در حالت انتظار می باشد
Thread-1 being executed. "
Thread-0 being executed. "
Thread-1 being executed. "
Thread-0 being executed. "
Thread-1 being executed. "
Thread-0 being executed. "
Thread-1 being executed. "
Thread-0 being executed. "
Thread-1 being executed. "
Thread-0 being executed. "
Thread-1 being executed. "
Thread-0 being executed. "
Thread-1 being executed. "
Thread-0 being executed. "
Thread-1 being executed. "
Thread-0 being executed.-->اجرای ترد 0 در این هنگام ترد 1 در حالت انتظار می باشد
Thread-1 being executed.-->اجرای ترد 1 در این هنگام ترد 0 در حالت انتظار می باشد
توجه داشته باشید ترتیب نمایش خروجی در هر بار اجرا ممکن است متفاوت باشد و این دقیقا نشانگر این تقسیم زمان به صورت تصادفی بین دو ترد می باشد توصیه می شود برنامه بالا را بیشتر از یک بار اجرا نموده و خروجی را با هم مقایسه نمایید.
ادامه دارد....