public int getNumber() {
synchronized ( this ) {
try { Thread.sleep( 3000 ); } catch (InterruptedException e) {}
return number;
}
}
public String
getString(){
synchronized ( this ) {
return str;
}
}
private String str = "Hello world!";
private int number = 10;
public static void main( String[] args ) {
final SynchronizedThis_Exemplo data = new SynchronizedThis_Exemplo();
Runnable numberReader = new Runnable() {
public void run() {
System.out.println(
"Obtendo número..." );
System.out.println( data.getNumber() );
}
};
Runnable stringReader = new Runnable() {
public void run() {
System.out.println(
"Obtendo cadeia..." );
System.out.println( data.getString() );
}
};
(new Thread( numberReader ) ).start();
(new Thread( stringReader ) ).start();
}
|
|