Lợi ích của việc thực thi giao diện Runnable (implements Runnable): dễ dàng kế thừa từ một class khác, vẫn thực hiện được chương trình đa luồng.
Để viết chương trình Multithread (đa luồng):
Để viết chương trình Multithread (đa luồng):
- Tạo Thread mới trong Phương thức khởi tạo lớp (khuyến khích dùng Runnable)
- Override phương thức run() (Phương thức run() tự động kích hoạt khi bạn gọi phương thức start())
public class NewThread implements Runnable {
Thread _runner;
//Thực hiện luồng chương trình mới trong Phương thức khởi tạo không an toàn lắm.
//Nên mình viết hàm CreateThread()
public NewThread(String threadName)
{
_runner = new Thread(this,threadName); //Tạo Thread mới
System.out.println(_runner.getName());
CreateThread();
}
private void CreateThread()
{
try{
_runner.start(); //Bắt đầu thread mới
}
catch(Exception e)
{
System.err.println(e.getMessage());
}
}
@Override
public void run()
{
//System.out.println(_runner.currentThread());
try{
for(int i=0;i<5;i++)
{
System.out.println(_runner.getName() + " " + i);
Thread.sleep(1000);
}
}
catch(InterruptedException e)
{
System.err.println(e.getMessage());
}
System.out.println("****************** " + _runner.getName() + " kết thúc");
}
}
Hàm Main()package CreateMuliThreads;
/**
*
* @author Crystal
* Subject: Tạo chương trình Đa luồng.
* Content: Thực thi giao diện từ Runable
* Dùng phương thức khởi tạo để tạo luồng mới.
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
NewThread one = new NewThread("One");
NewThread two = new NewThread("Two");
NewThread three = new NewThread("Three");
try{
Thread.sleep(10000);
}
catch(InterruptedException e)
{
System.err.println("Lỗi xảy ra: " +e.getMessage());
}
System.out.println("Main thread exit");
}
}
Nhận xét
Đăng nhận xét