java単スレッドとマルチスレッドの違い

1960 ワード

1.単スレッドとマルチスレッドの違い?
あなたは朝出勤して、カードを打とうとする時、携帯電話が鳴りました。先に電話に出たら、後でカードを打っています。シングルスレッドです。もしあなたが片手で電話に出れば、片手でカードを打つ。マルチスレッドです。この二つのことの結果は同じです。電話に出てカードをかけました。
(1)最も一般的なスレッドの例:
package com.ggx.thread;
public class OnlyThread{
	public static void main(String[] args){
		System.out.println("       ");
	}
}
プログラムが起動して実行すると、自動的にスレッドが作成され、メインメソッドmainはこのメインスレッドで実行されます。私たちのプログラムはスレッドによって実行されます。
(2)スレッドの挙動を制御する
package com.ggx.thread;

public class OnlyThread {

	@SuppressWarnings("static-access")
	public static void main(String[] args) {
		Thread thread = Thread.currentThread();//          (           )
		thread.setName("          ");//         
		System.out.println(thread.getName() + ":    ");
		for (int i = 0; i <= 5; i++) //        
		{
			try 
			{
				System.out.println(thread.getName()+" :" + i+"   ,    "+System.currentTimeMillis());
				thread.sleep(5000);//          
				System.err.println(thread.getName()+" :" + i+"   ,    "+System.currentTimeMillis());
				thread.sleep(1000);//               ,           ,                ,          
				System.out.println();//  
			} catch (InterruptedException e) 
			{
				System.out.println(thread.getName()+"  ");
				e.printStackTrace();
			}
		}
	}
}

プログラム運転結果:
私はぽつんとスレッドを実行しています。スレッドの第1回目:0回目の睡眠、現在の時間は14973405648です。スレッドの第1回目:0回目の覚醒、現在の時間は1437340766です。現在の時間は14973406768です。私はスレッドが1つだけです。2回目の睡眠は、現在の時間は14973407670です。スレッドが1つだけです。2回目の目覚めは、現在の時間は1437340820820826773です。現在の時間は14973408687です。私は一人ぼっちのスレッドです。第4回睡眠、現在の時間は14973408990です。私は一人ぼっちのスレッドです。第4回目の覚醒、現在の時間は14373409494です。
プログラムが起動して実行すると、自動的にスレッドが作成され、メインメソッドmainはこのメインスレッドで実行されます。私たちのプログラムはスレッドによって実行されます。
スレッドは、作成後すぐにrunメソッドのコードを実行するのではなく、待機状態にあります。スレッドが待機している場合、スレッドの優先度、スレッド名、スレッドのタイプなど、Thread類の方法でスレッドの各種属性を設定することができます。
注意:既に起動されているスレッドに対して再度startを呼び出すことはできません。そうでないと、java.lang.IllagalThreadStation異常が発生します。