/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static final SyncNotsynced sn = new SyncNotsynced();
public static void main
(String[] args
){ t1.start();
t2.start();
}
public static class SyncNotsynced {
public synchronized void synced(){
System.
out.
println(Thread.
currentThread().
getName() + " enter synced"); try {
Thread.
currentThread().
interrupt(); }
System.
out.
println(Thread.
currentThread().
getName() + " exit synced"); }
public void notsynced(){
System.
out.
println(Thread.
currentThread().
getName() + " enter notsynced"); try {
Thread.
currentThread().
interrupt(); }
System.
out.
println(Thread.
currentThread().
getName() + " exit notsynced"); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3luY05vdHN5bmNlZCBzbiA9IG5ldyBTeW5jTm90c3luY2VkKCk7CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncyl7CiAgICAgICAgVGhyZWFkIHQxID0gbmV3IFRocmVhZChzbjo6c3luY2VkKTsKICAgICAgICBUaHJlYWQgdDIgPSBuZXcgVGhyZWFkKHNuOjpub3RzeW5jZWQpOwogICAgICAgIHQxLnN0YXJ0KCk7CiAgICAgICAgdDIuc3RhcnQoKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFN5bmNOb3RzeW5jZWQgewoKICAgICAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgc3luY2VkKCl7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihUaHJlYWQuY3VycmVudFRocmVhZCgpLmdldE5hbWUoKSArICIgZW50ZXIgc3luY2VkIik7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMjAwMCk7CiAgICAgICAgICAgIH0gY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgICAgIFRocmVhZC5jdXJyZW50VGhyZWFkKCkuaW50ZXJydXB0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFRocmVhZC5jdXJyZW50VGhyZWFkKCkuZ2V0TmFtZSgpICsgICIgZXhpdCBzeW5jZWQiKTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyB2b2lkIG5vdHN5bmNlZCgpewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXROYW1lKCkgKyAiIGVudGVyIG5vdHN5bmNlZCIpOwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDIwMDApOwogICAgICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgICAgICBUaHJlYWQuY3VycmVudFRocmVhZCgpLmludGVycnVwdCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihUaHJlYWQuY3VycmVudFRocmVhZCgpLmdldE5hbWUoKSArICAiIGV4aXQgbm90c3luY2VkIik7CiAgICAgICAgfQogICAgfQp9