class PrintNameThread
implements Runnable { PrintNameThread
(String name
) { thread
= new Thread(this,name
); thread.start();
}
public void run() {
String name
= thread.
getName(); for (int i = 0; i < 20; i++) {
}
}
}
class TestThreadJoin {
public static void main
(String args
[]) { PrintNameThread pnt1 = new PrintNameThread("N");
PrintNameThread pnt2 = new PrintNameThread("U");
PrintNameThread pnt3 = new PrintNameThread("r");
PrintNameThread pnt4 = new PrintNameThread("I");
System.
out.
println("Running threads..."); try {
pnt1.thread.join();
pnt2.thread.join();
pnt3.thread.join();
pnt4.thread.join();
}
System.
out.
println("Threads killed."); }
}
Y2xhc3MgUHJpbnROYW1lVGhyZWFkIGltcGxlbWVudHMgUnVubmFibGUgewogICAgVGhyZWFkIHRocmVhZDsKICAgIFByaW50TmFtZVRocmVhZChTdHJpbmcgbmFtZSkgewogICAgICAgIHRocmVhZCA9IG5ldyBUaHJlYWQodGhpcyxuYW1lKTsKICAgICAgICB0aHJlYWQuc3RhcnQoKTsKICAgIH0KICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKICAgIFN0cmluZyBuYW1lID0gdGhyZWFkLmdldE5hbWUoKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjA7IGkrKykgewogICAgU3lzdGVtLm91dC5wcmludChuYW1lKTsKfQp9Cn0KY2xhc3MgVGVzdFRocmVhZEpvaW4gewogcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgewogICAgIFByaW50TmFtZVRocmVhZCBwbnQxID0gbmV3IFByaW50TmFtZVRocmVhZCgiTiIpOwogICAgIFByaW50TmFtZVRocmVhZCBwbnQyID0gbmV3IFByaW50TmFtZVRocmVhZCgiVSIpOwogICAgIFByaW50TmFtZVRocmVhZCBwbnQzID0gbmV3IFByaW50TmFtZVRocmVhZCgiciIpOwogICAgIFByaW50TmFtZVRocmVhZCBwbnQ0ID0gbmV3IFByaW50TmFtZVRocmVhZCgiSSIpOwogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUnVubmluZyB0aHJlYWRzLi4uIik7CiAgICAgdHJ5IHsKICAgICAgICAgcG50MS50aHJlYWQuam9pbigpOwogICAgICAgICBwbnQyLnRocmVhZC5qb2luKCk7CiAgICAgICAgIHBudDMudGhyZWFkLmpvaW4oKTsKICAgICAgICAgcG50NC50aHJlYWQuam9pbigpOwogICAgIH0gY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGllKSB7CiB9CiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaHJlYWRzIGtpbGxlZC4iKTsKIH0KfQ==