一、继承 Thread 类


package thread; public class ThreadExte extends Thread{ private String name; public ThreadExte() { } public ThreadExte(String name) { this.name = name; } @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println(name + ":" + i); } } }
二、实现 Runnable 接口


package thread; public class ThreadRunImpl implements Runnable { private String name; public ThreadRunImpl() { } public ThreadRunImpl(String name) { this.name = name; } @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println(name + ":" + i); } } }
三、测试代码


package thread; public class Test { public static void main(String[] args){ Thread ext1 = new ThreadExte("ext1"); Thread ext2 = new ThreadExte("ext2"); Runnable imp1 = new ThreadRunImpl("imp1"); Thread t1 = new Thread(imp1); Runnable imp2 = new ThreadRunImpl("imp2"); Thread t2 = new Thread(imp2); ext1.start(); ext2.start(); t1.start(); t2.start(); } }
四、实现Runnable的优势
a、可以避免java单继承的限制。
b、适合资源共享。