/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
class Q
{ int n
; synchronized int get
( ) { System .
out .
println ( "Got n :" + n
) ; return n
; } synchronized void put
( int n
) { this .
n = n
; System .
out .
println ( "Put n :" + n
) ; } }
{
Q q1;
Producer( Q q)
{
this .q1 = q;
}
public void run( )
{
int i = 0 ;
q1.put ( i++ ) ;
}
}
{
Q q1;
Consumer( Q q)
{
this .q1 = q;
}
public void run( )
{
q1.get ( ) ;
}
}
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Q q = new Q( ) ;
new Producer( q) ;
new Consumer( q) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBRIHsgaW50IG47IHN5bmNocm9uaXplZCBpbnQgZ2V0KCkgeyBTeXN0ZW0ub3V0LnByaW50bG4oIkdvdCBuIDoiK24pOyByZXR1cm4gbjsgfSBzeW5jaHJvbml6ZWQgdm9pZCBwdXQoaW50IG4pIHsgdGhpcy5uID0gbjsgU3lzdGVtLm91dC5wcmludGxuKCJQdXQgbiA6IituKTsgfSB9CgpjbGFzcyBQcm9kdWNlciBpbXBsZW1lbnRzIFJ1bm5hYmxlCnsKICAgIFEgcTE7CiAgICBQcm9kdWNlcihRIHEpCiAgICB7CiAgICAgICAgdGhpcy5xMSA9IHE7CiAgICAgICAgbmV3IFRocmVhZCh0aGlzKS5zdGFydCgpOyAKICAgIH0KICAgIHB1YmxpYyB2b2lkIHJ1bigpCiAgICB7CiAgICAgICAgaW50IGkgPTA7CiAgICAgICAgcTEucHV0KGkrKyk7CiAgICB9Cn0KCmNsYXNzIENvbnN1bWVyIGltcGxlbWVudHMgUnVubmFibGUKewogICAgUSBxMTsKICAgIENvbnN1bWVyKFEgcSkKICAgIHsKICAgICAgICB0aGlzLnExID0gcTsKICAgICAgICBuZXcgVGhyZWFkKHRoaXMpLnN0YXJ0KCk7CiAgICB9CiAgICBwdWJsaWMgdm9pZCBydW4oKQogICAgewogICAgICAgIHExLmdldCgpOwogICAgfQp9Ci8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJCgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJUSBxID0gbmV3IFEoKTsKICAgICAgICBuZXcgUHJvZHVjZXIocSk7CiAgICAgICAgbmV3IENvbnN1bWVyKHEpOwoJfQp9