import java.util.*;
import java.lang.*;
class Main
{
{
new Main();
}
public Main() {
long a
= System.
currentTimeMillis(); int n = 0;
for (int i=0; i<1000000; i++) {
synchronized(this) {
n += 5*5;
}
}
System.
out.
println("1M computations: " + (System.
currentTimeMillis()-a
)/1000D
+"s");
a
= System.
currentTimeMillis(); synchronized(this) {
for (int i=0; i<1000000; i++) {
n += 5*5;
}
}
System.
out.
println("1M synchronized code blocks: " + (System.
currentTimeMillis()-a
)/1000D
+"s");
a
= System.
currentTimeMillis(); n = 0;
for (int i=0; i<1000000; i++) {
n += poti();
}
System.
out.
println("1M synchronized method calls: " + (System.
currentTimeMillis()-a
)/1000D
+"s"); }
public synchronized int poti()
{
return 5*5;
}
}
CmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGphdmEubGFuZy4qOwogCmNsYXNzIE1haW4KewogICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgogICAgICAgIHsKICAgICAgICAgICAgICAgIG5ldyBNYWluKCk7CiAgICAgICAgfQogCiAgICAgICAgcHVibGljIE1haW4oKSB7CgogICAgICAgIAlsb25nIGEgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKICAgICAgICAgICAgaW50IG4gPSAwOwogICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPDEwMDAwMDA7IGkrKykgewogICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCh0aGlzKSB7CiAgICAgICAgICAgICAgICAgIG4gKz0gNSo1OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMU0gY29tcHV0YXRpb25zOiAiICsgKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpLWEpLzEwMDBEKyJzIik7CiAKICAgICAgICAgICAgICAgIGEgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCh0aGlzKSB7CiAgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPDEwMDAwMDA7IGkrKykgewogICAgICAgICAgICAgICAgICBuICs9IDUqNTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjFNIHN5bmNocm9uaXplZCBjb2RlIGJsb2NrczogIiArIChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKS1hKS8xMDAwRCsicyIpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBhID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CiAgICAgICAgICAgICAgICBuID0gMDsKICAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8MTAwMDAwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIG4gKz0gcG90aSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIxTSBzeW5jaHJvbml6ZWQgbWV0aG9kIGNhbGxzOiAiICsgKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpLWEpLzEwMDBEKyJzIik7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IHBvdGkoKQogICAgICAgIHsKICAgICAgICAJcmV0dXJuIDUqNTsKICAgICAgICB9Cn0K