| 实现一个线程的两种方法
 山哥 http://blog.csdn.net  
我们通过同一个例子,看线程的两种创建方法,以及运行方法 
一种是声明 Thread 的子类,重载 Thread 类的方法 run 
public class MyThread  extends Thread {   public void run() {     for (int count = 1, row = 1; row < 20; row++, count++) {       for (int i = 0; i < count; i++)         System.out.print('*');       System.out.print('\n');     }   } } 
运行时可以有两种方法,A,B. 
  public static void main(String[] args) {     MyThread mt = new MyThread();//A     mt.start();//A     Thread myThread = new Thread(new MyThread());//B     myThread.start();//B     for (int i = 0; i < 500; i++) {       System.out.println(i);     }   }
  
另一种途径是声明一个类,该类实现 Runnable 接口。然后再实现方法 run。  
// public class MyThread  extends Thread { public class MyThread implements Runnable {   public void run() {     for (int count = 1, row = 1; row < 20; row++, count++) {       for (int i = 0; i < count; i++)         System.out.print('*');       System.out.print('\n');     }   } } 
运行时只能有一种方法B. 
  public static void main(String[] args) {  //   MyThread mt = new MyThread();  //   mt.start();     Thread myThread = new Thread(new MyThread());     myThread.start();     for (int i = 0; i < 500; i++) {       System.out.println(i);     }   }
 
  
 
  |