その差を待つ1.sleep
スレッドスリープ()メソッドは、ダウン継続するスレッドにスリープCPUバック後の指定した時刻に、(CPU、あなたは他のタスクに行くことができます)CPUへのイニシアチブを実行しています
待機メソッドは、スレッドの実行を中断することができ、スレッドが他のスレッドを実行するリソースを取得だから、これを待っているので、CPUリソースています。
あなたが通知()メソッドを使用する場合は、終了を待っているスレッドに通知する(注:役割は、人々の睡眠の同等に通知が目を覚ますと、彼にちょうどそうスレッドがあるまで待つように呼び出しを通知され、割り当てられたタスクを与えません再従事スレッドのスケジューリングの権利)
あなたは、その後のnotifyAll()メソッドを使用している場合は、中断されたスレッドだったがオフに左のスレッドを実行していきます
2.スレッド同期は同期
スレッドAが使用している場合、同期時間法を、他のスレッドは、この同期メソッドを使用するスレッドが同期メソッドを使用して終了するまで待たなければなりません
package 线程同步synchronized;
public class Synchronized implements Runnable {
public static void main(String[] args) {
new Thread(new Synchronized(),"小美").start();
new Thread(new Synchronized(),"小绿").start();
}
@Override
public void run() {
test();
}
public static synchronized void test() {// synchronized方法
for (int i = 0; i <5; i++) {
System.out.println(Thread.currentThread().getName()+"当前数字"+i);
}
}
}
3.interrupt()
割り込みは()スリープ中のスレッドをウェイクアップするために使用しました。いくつかのスレッドの睡眠を呼び出します()メソッドは、睡眠中は、CPUリソースの所有スレッドが眠っているスレッドの呼び出しは、このように睡眠を終了、異常InterruptedExceptionある休眠スレッドの発生に()メソッド「自分を目覚め」、およびリードを中断することができます
4.)ジョイント(参加スレッド
所持のCPUリソース中のスレッドが、他のリソースは、呼び出しは(参加することができます)とのようなこのスレッドジョイント、:
B.join();
結合されるまで当事者A、Bの共同動作中には、スレッドの実行がすぐに中断され、彼は待っていましたBのスレッドは、スレッドのCPUリソースの再キューイングされ、終了します。
デーモンスレッドは、setdaemon()
(真)thread.setdeamon、
スレッドガードのスレッド
この方法は、(前にthread.startで書かれている、())プレスタートスレッドの実行を必要とします
プログラムが終了すると、すべてのユーザスレッド、スレッドのrunメソッドのいくつかの保護者のタイムリーな文はまだ実行する必要がある、スレッドの保護者も直ちに終了します
デーモンスレッドをパッケージ化。
パブリッククラスデーモン器具のRunnable {
パブリック静的無効メイン(文字列[] args){
Thread thread =new Thread(new deamon(),"小王");
thread.setDaemon(true);
thread.start();
System.out.println("定");//主线程
}
@Override
public void run() {
test();
}
public static void test() {
for (int i = 1; i <= 500; i++) {
System.out.println(Thread.currentThread().getName()+i+Thread.currentThread().isDaemon());
}
}
}
6.yield()
礼譲スレッドを得、スレッドが準備完了状態に直接サスペンド状態がブロックされていない(リソースのCPU再割り当て)