público estático classe Base {
público sincronizado nulo setValue( int valor ) {
tentar { Thread.sleep( 1000 ); } capturar (InterruptedException e) {}
esse .value = valor;
}
público sincronizado int getValue() {
retornar valor;
}
protegido int valor = 0;
}
público estático classe Derivado estende Base {
público int getValue() {
retornar esse .value;
}
}
público estático nulo principal(Cadeia[] args) {
System.out.println( "Testando a Base..." );
teste( novo Base() );
tentar { Thread.sleep( 5000 ); } capturar (InterruptedException e) {}
System.out.println( "Testando Derivado..." );
testar( novo Derivado() );
}
privado estático nulo testar( final Base base ) {
Executável escritor = novo Executável() {
público nulo executar() {
System.out.println( "Escritor definiu o valor " );
base.setValue( 1 );
}
};
Executável leitor = novo Executável() {
público nulo executar() {
System.out.println( "Leitor: " + base.getValue() );
}
};
(new Encadeamento( escritor ) ).start();
(novo Encadeamento( leitor ) ).start();
}
|
|