1. 程式人生 > >使用匿名內部類實現執行緒,new Thread(new Runnable(){}) 和 new Thread(){}

使用匿名內部類實現執行緒,new Thread(new Runnable(){}) 和 new Thread(){}

就是利用匿名內部類實現,補充下,做個筆記吧

import java.util.Date;

public class ThreadInnerClass {

	/**
	 * @主要看使用內部類怎樣實現一個執行緒
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Thread(new ThreadInner()).start();//相當於new Thread(實現Runnable介面)
		
//		new Thread(new ThreadInner(),"執行緒1").start();//同上,(取個名字)相當於new Thread(實現Runnable介面),ThreadInner物件操作執行緒
		
//		new ThreadInner().run();//執行緒也會執行,不過是這個main在操作執行緒。
		
		/*
		new Thread(new Runnable(){//相當於是實現runnable介面
			@Override
			public void run(){
				
				while(true)
				{
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
					System.out.println("1");
					
				}
				
			}
			
		}).start();
		*/
		
		
		/*
		new Thread(){//直接重寫run方法
			@Override
			public void run(){
				System.out.println("2");
			}
			
		}.start();
		*/
		
		/*
		new ThreadInner2(){//相當於繼承Thread,重寫run方法。和上面直接重寫run方法同理
			@Override
			public void run(){
				System.out.println("3");
			}
			
		}.start();
		*/
		
	}

}

class ThreadInner implements Runnable{
	
	@Override
	public void run(){
		
		while(true)
		{
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			System.out.println(Thread.currentThread().getName()+"  " + new Date());
		}
	}
}


class ThreadInner2 extends Thread{
	
}