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