[java]スレッドのjoin
2009/02/06
java
スレッド
Javaです。スレッドのjoinは、スレッドが終了するまで待機します。
で、このスレッドが終了というのが正直よくわかってないです。
なので、簡単なサンプル
どうかな。。。
package th;
public class TestJoin {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
sleep(2000);
System.out.println("wake up!!!");
}
});
System.out.println("*** GO!!");
thread.start();
// 待機時間をしていできるよ。
join(thread, 1000);
System.out.println("*** GO GO!!");
}
}) {
}.start();
}
public static void sleep(long t) {
try {
System.out.println("i am sleep... " + t + "ms");
Thread.sleep(t);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void join(Thread th, long t) {
try {
th.join(t);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class TestJoin {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
sleep(2000);
System.out.println("wake up!!!");
}
});
System.out.println("*** GO!!");
thread.start();
// 待機時間をしていできるよ。
join(thread, 1000);
System.out.println("*** GO GO!!");
}
}) {
}.start();
}
public static void sleep(long t) {
try {
System.out.println("i am sleep... " + t + "ms");
Thread.sleep(t);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void join(Thread th, long t) {
try {
th.join(t);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
: