記事のディレクトリ
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スケジューリングを待って、中断されています。
そして、睡眠は()ので、可能性がある操作に直接スケジュールするために、直接準備状態に、指定した時間とは異なるではありません。