Javaの学習:マルチスレッド - とメソッドのスレッドをブロック停止

1、スレッドストップ

スレッドを停止し、自然に外部からの干渉を停止するには、2つの方法があります。
(1)自然停止:通常、完成したスレッド本体。
(2)外部干渉;本体は、スレッド識別子を使用して、スレッドのクラスは、識別糸体を使用して定義された方法に従って、外部条件が呼び出され、外部識別子を変更する方法を提供します。以下のコードの定義に示すように、制御スレッド識別フラグを停止します。

public class test {

	public static void main(String[] args) {

		Play py = new Play();
		new Thread(py).start();
		try {
			for (int i = 0; i < 100; i++) {
				System.out.println("i的值是  " + i);
				if (i == 50) {
					py.stop();
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

class Play implements Runnable {
	private boolean flag = true;

	@Override
	public void run() {
		while (flag) {
			System.out.println("Play Thread is running---------");
		}
	}

	public void stop() {
		this.flag = false;

	}
}

スレッドをブロック2、

(1)参加():ブロックの元のスレッド、スレッドを合併。

呼び出し元のスレッドがメソッドの意味は完全run()メソッドであるようにすることです後、コード(後)は、その後、結合を実行します。つまり、同期を達成するために、2つのスレッドが合流するようにします。

(2)睡眠():指定スリープ時間は、ロックを解除しないでください。

指定された睡眠時間、睡眠を通します。私たちは、継続してこのスレッドを割り当てるCPUを待って、CPUは、特定の期間の後、レディ状態を入力できるようにするイニシアチブをとるだろう。このプロセスでは、ロックを解除しません。(スリープ状態にオブジェクトを持って、ロックを解除しないでください)

(3)収率():このスレッドは、CPUスケジューリングを待って、中断されています。

そして、睡眠は()ので、可能性がある操作に直接スケジュールするために、直接準備状態に、指定した時間とは異なるではありません。

公開された57元の記事 ウォン称賛13 ビュー1095

おすすめ

転載: blog.csdn.net/weixin_42924812/article/details/105233988