آشنایی با نحوۀ کنترل ترتیب اجرای تِرِدها در زبان برنامهنویسی جاوا
در آموزش گذشته با مفاهیم تِرِد و مالتیتِرِدینگ در زبان برنامهنویسی جاوا آشنا شده و نحوۀ ایجاد دو تِرِد و اجرای آنها به صورت همزمان را آموختیم اما در این آموزش قصد داریم تا روشی به منظور کنترل ترتیب اجرای تِرِدهای برنامه ارائه نماییم. همانطور که در آموزش آشنایی با مفهوم Thread در زبان برنامهنویسی جاوا توضیح دادیم، دو روش برای ساخت تِرِد در زبان جاوا وجود دارد که در این آموزش از روش اول به منظور ایجاد تِرِدها استفاده کرده و بدین ترتیب یکسری کلاس جهت ارثبری از کلاس Thread
زبان جاوا تعریف کرده و در ادامه نحوۀ کنترل ترتیب اجرای تِرِدها را مورد بررسی قرار خواهیم داد.
در همین راستا، ابتدا پروژهای تحت عنوان ControllingThreadExecution در محیط برنامهنویسی اکلیپس ایجاد کرده و در آن کلاسی به نام HowToControlThreads
میسازیم به طوری که در کد زیر داریم:
public class HowToControlThreads extends Thread {
@Override
public void run() {
System.out.println("This is text from first thread 1");
System.out.println("This is text from first thread 2");
System.out.println("This is text from first thread 3");
System.out.println("This is text from first thread 4");
System.out.println("This is text from first thread 5");
System.out.println("This is text from first thread 6");
}
}
در کد فوق، ابتدا نام کلاس را نوشته و در ادامه کیورد extends
سپس نام کلاس Thread
را نوشتهایم که بدین ترتیب کلاس HowToControlThreads
از کلاس Thread
ارثبری کرده و در ادامه متد ()run
از این کلاس را جهت پیادهسازی دستورات مد نظر خود اُورراید کردهایم و در آن دستوراتی مبنی بر چاپ استرینگهای فوق را نوشتهایم که در صورت فراخوانی متد ()run
استرینگهای مربوطه را در کنسول نمایش میدهد.
در این آموزش ابتدا به بررسی ترتیب اجرای تِرِدها در برنامههای پرداختیم که به صورت مالتیتِرِد اجرا میشوند سپس به منظور کنترل ترتیب اجرای تَسکها توسط تِرِدهای ایجادشده، اینترفیسی تحت عنوان ExecutorService
را معرفی کرده و گفتیم که جهت دسترسی به متدهای پیادهسازیشدۀ این اینترفیس، به کلاس Executors
مراجعه کرده و متدهای مورد نیاز خود را فراخوانی مینماییم. در ادامه، متد ()newSingleThreadExecutor
را فراخوانی کردیم که این وظیفه را دارا است تا یک تِرِد ایجاد کرده و اجرای تمامی تَسکهای برنامه را محدود به آن تِرِد نماید.