class Example
{
{
@Override
public void run() {
System.
out.
println(Thread.
currentThread().
getName() + ": Running run"); }
});
System.
out.
println(Thread.
currentThread().
getName() + ": Running main"); System.
out.
println(Thread.
currentThread().
getName() + ": Calling t.start()"); t.start();
System.
out.
println(Thread.
currentThread().
getName() + ": Calling t.join() to wait for thread exit"); try {
t.join();
System.
out.
println(Thread.
currentThread().
getName() + ": Calling got InterruptedException"); }
System.
out.
println(Thread.
currentThread().
getName() + ": Program complete"); }
}
Y2xhc3MgRXhhbXBsZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlUaHJlYWQgdD0gbmV3IFRocmVhZChuZXcgUnVubmFibGUoKSB7CgkJCUBPdmVycmlkZQoJCQlwdWJsaWMgdm9pZCBydW4oKSB7CgkJCQlTeXN0ZW0ub3V0LnByaW50bG4oVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXROYW1lKCkgKyAiOiBSdW5uaW5nIHJ1biIpOwoJCQl9CgkJfSk7CgkJU3lzdGVtLm91dC5wcmludGxuKFRocmVhZC5jdXJyZW50VGhyZWFkKCkuZ2V0TmFtZSgpICsgIjogUnVubmluZyBtYWluIik7CgkJU3lzdGVtLm91dC5wcmludGxuKFRocmVhZC5jdXJyZW50VGhyZWFkKCkuZ2V0TmFtZSgpICsgIjogQ2FsbGluZyB0LnN0YXJ0KCkiKTsKCQl0LnN0YXJ0KCk7CgkJU3lzdGVtLm91dC5wcmludGxuKFRocmVhZC5jdXJyZW50VGhyZWFkKCkuZ2V0TmFtZSgpICsgIjogQ2FsbGluZyB0LmpvaW4oKSB0byB3YWl0IGZvciB0aHJlYWQgZXhpdCIpOwoJCXRyeSB7CgkJCXQuam9pbigpOwoJCX0gY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGllKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihUaHJlYWQuY3VycmVudFRocmVhZCgpLmdldE5hbWUoKSArICI6IENhbGxpbmcgZ290IEludGVycnVwdGVkRXhjZXB0aW9uIik7CgkJfQoJCVN5c3RlbS5vdXQucHJpbnRsbihUaHJlYWQuY3VycmVudFRocmVhZCgpLmdldE5hbWUoKSArICI6IFByb2dyYW0gY29tcGxldGUiKTsKCX0KfQo=