import java.* ;
public class Main
{
public void run( ) {
synchronized ( A) {
synchronized ( B) {
doWork( "first" ) ;
} } } }
public void run( ) {
synchronized ( B) {
synchronized ( A) {
doWork( "second" ) ;
} } } }
public static void doWork
( String in
) {
System .
out .
println ( "I'm doing work!" + in
) ; }
public static void main
( String [ ] args
) {
AB a = new AB( ) ;
BA b = new BA( ) ;
t1.start ( ) ;
t2.start ( ) ;
}
}
aW1wb3J0IGphdmEuKjsKCgpwdWJsaWMgY2xhc3MgTWFpbgp7CgoJc3RhdGljIE9iamVjdCBBID0gbmV3IE9iamVjdCgpOyAKCXN0YXRpYyBPYmplY3QgQiA9IG5ldyBPYmplY3QoKTsKCglzdGF0aWMgY2xhc3MgQUIgaW1wbGVtZW50cyBSdW5uYWJsZSB7IAoJICBwdWJsaWMgdm9pZCBydW4oKSB7IAogICAgICAgIAkgc3luY2hyb25pemVkIChBKSB7CgkJCVRocmVhZC5zbGVlcCgxMDApOwoJICAgICAgICAgICAgc3luY2hyb25pemVkIChCKSB7IAoJCQkJVGhyZWFkLnNsZWVwKDEwMCk7CgkgICAgICAgICAgICAgICAgICAgZG9Xb3JrKCJmaXJzdCIpOyAKCSAgICAgICAgICAgICB9fX19IAoKCXN0YXRpYyBjbGFzcyBCQSBpbXBsZW1lbnRzIFJ1bm5hYmxlIHsgCgkgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsgCgkgICAgICAgICAgICAgc3luY2hyb25pemVkIChCKSB7CgkJCVRocmVhZC5zbGVlcCgxMDApOwoJICAgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChBKSB7IAoJCQkJVGhyZWFkLnNsZWVwKDEwMCk7CgkgICAgICAgICAgICAgICAgICAgICAgICAgZG9Xb3JrKCJzZWNvbmQiKTsgCgkgICAgICAgICAgICAgIH19fX0KCgoJcHVibGljIHN0YXRpYyB2b2lkIGRvV29yayhTdHJpbmcgaW4pCgl7CgkJU3lzdGVtLm91dC5wcmludGxuKCAiSSdtIGRvaW5nIHdvcmshIiArIGluKTsKCX0KCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSAKCXsKCgkJQUIgYSA9IG5ldyBBQigpOwoJCUJBIGIgPSBuZXcgQkEoKTsKCgkJVGhyZWFkIHQxID0gbmV3IFRocmVhZChhKTsKCQl0MS5zdGFydCgpOwoJICAgICAgICBUaHJlYWQgdDIgPSBuZXcgVGhyZWFkKGIpOwoJCXQyLnN0YXJ0KCk7CgoJfQoKfQ==
compilation info
Main.java:13: unreported exception java.lang.InterruptedException; must be caught or declared to be thrown
Thread.sleep(100);
^
Main.java:15: unreported exception java.lang.InterruptedException; must be caught or declared to be thrown
Thread.sleep(100);
^
Main.java:22: unreported exception java.lang.InterruptedException; must be caught or declared to be thrown
Thread.sleep(100);
^
Main.java:24: unreported exception java.lang.InterruptedException; must be caught or declared to be thrown
Thread.sleep(100);
^
4 errors
stdout