_123_Java_创建线程的两种方式

  • Thread类 

 _123_Java_创建线程的两种方式

_123_Java_创建线程的两种方式

_123_Java_创建线程的两种方式

 _123_Java_创建线程的两种方式

/*
 * 创建多线程的第一种方式:继承java.lang.Thread类.
 * 
 * */
public class _001_TestThread {
	
	public static void main(String[] args) {
		//创建一个子对象
		_001_TestThread.SubThread subThread = new _001_TestThread.SubThread();
		//启动线程,一个线程只能启动一次。
		subThread.start();
		//subThread.start(); //抛出异常,因为该线程已经被启动了
		
		for(int i=0;i<=100;i++) {
			System.out.println(Thread.currentThread().getName()+"   "+i);
		}
		
	}

	
	//InnerClass
	private static  class SubThread extends Thread{
		@Override
		public void run() {
			// TODO Auto-generated method stub
			for(int i=0;i<=100;i++) {
				System.out.println(Thread.currentThread().getName()+"   "+i);
			}
		}
		
	}
}

 ---------------------------

_123_Java_创建线程的两种方式

/*
 * 创建多线程的第二种方式:实现java.lang.Runnable.
 * 
 * */
public class _001_TestThread {
	
	public static void main(String[] args) {
		//创建一个子对象
		_001_TestThread.SubThread subThread = new _001_TestThread.SubThread();
		Thread thread=new Thread(subThread);
		//启动线程
		thread.start();
		
		for(int i=0;i<=100;i++) {
			System.out.println(Thread.currentThread().getName()+"   "+i);
		}
		
	}
	
	//InnerClass
	private static  class SubThread implements Runnable{

		@Override
		public void run() {
			// TODO Auto-generated method stub
			for(int i=0;i<=100;i++) {
				System.out.println(Thread.currentThread().getName()+"   "+i);
			}
		}
	}
}

 

------------------------------- 

 _123_Java_创建线程的两种方式

  • 线程的调度

  • 继承方式和实现方式的联系与区别 

 _123_Java_创建线程的两种方式