JAvaのスレッド(一)-スレッドの5つの状態とスレッドの作成方法


一、javaでは、スレッドには通常5つの状態があり、作成、準備、実行、ブロック、死亡状態があります.
1つ目はステータスの作成です.スレッドオブジェクトを生成しても、そのオブジェクトのstartメソッドは呼び出されません.これは、スレッドが作成されている状態です.2つ目は準備状態です.スレッドオブジェクトのstartメソッドが呼び出されると、スレッドは準備完了状態に入りますが、スレッドスケジューラはスレッドを現在のスレッドに設定していません.準備完了状態です.スレッドが実行されると、待機中またはスリープから戻ってきた後も、準備が整います.3つ目は運転状態です.スレッドスケジューラは、準備完了状態のスレッドを現在のスレッドに設定し、スレッドが実行状態に入りrun関数のコードの実行を開始します.4つ目はブロック状態です.スレッドが実行中の場合、一時停止されます.通常、リソースの準備など、ある時間の発生を待ってから実行を続行します.sleep,suspend,waitなどの方法はいずれもスレッドのブロックを引き起こすことができる. 
5つ目は死亡状態です.スレッドのrunメソッドが終了したりstopメソッドが呼び出されたりすると、スレッドは死亡します.すでに死亡しているスレッドでは、startメソッドを使用して準備を完了することはできません.
二、mainメソッドもスレッドです
ごみ回収メカニズムはスレッドです
三、スレッドの作成方法
1、方式1:スレッドクラスを定義して、彼はThreadを継承してその中の方法run()を書き換えて、run()方法はスレッド体と称する
class Test
{
	public static void main(String args [])   //mian()     
	{
		//       
		FirstThread ft = new FirstThread();
		//    1
		ft.start();
		//ft.run()       ,       ,public void run()       
		//        ,               ,                           

		//  2
		for (int i=0;i<100 ;i++ )
		{
			System.out.println("main-->" + i);
		}
		//  1   2    
	}
}</span>
class FirstThread extends Thread
{
	public void run()
	{
		for(int i = 0;i<100;i++)
		{
			System.out.println("FirstThread-->" + i);
		}
	}
}</span>

2、スレッドの作成方法2
(1)実装インタフェースRunnableインタフェース,生成Runnableインタフェース実装クラスのオブジェクト
(2)Threadオブジェクトを生成し,Runnableインタフェース実装クラスのオブジェクトをパラメータとしてThreadオブジェクトに渡す.
class RunnableImpl implements Runnable
{
	public void run()
	{
		for(int i = 0;i<100;i++)
		{
			System.out.println("RunnableImpl-->" + i);
			
		}
	}
}
class Test
{
	public static void main(String args [])
	{
		//  Runnable        </span>
		RunnableImpl ri = new RunnableImpl();
		//    Thread  ,  Runnable               Thread  </span>
		Thread th = new Thread(ri);
		th.start();
	}
}