RETOUR |
|
public class CoordonneeSync {
private int cx ;
private int cy ;
public int x() {
return(cx) ;
}
public int y() {
return(cy) ;
}
public synchronized void set(int xx,int yy) {
cx = xx ;
cy = yy ;
}
} |
import java.applet.Applet ;
public class AfficheurSync extends Thread {
private CoordonneeSync c ;
private Applet a ;
private boolean ok = true ;
public AfficheurSync (CoordonneeSync co,Applet ap) {
c = co ;
a = ap ;
}
public void run() {
while ( ok ) {
a.repaint() ;
try {
Thread.sleep(1000) ; }
catch ( Exception e ) { } ;
}
}
} |
public class ModifieurSync extends Thread {
private CoordonneeSync c ;
private boolean ok = true ;
public ModifieurSync (Coordonnee co) {
c = co ;
}
public void run() {
while ( ok ) {
c.set(c.x()+1,c.y()+1) ; }
}
} |
import java.applet.Applet ;
import java.awt.Graphics ;
public class Synchro2 extends Applet {
private CoordonneeSync c ;
private AfficheurSync a ;
private ModifieurSync b ;
private int cpt = 0 ;
public void init() {
c = new CoordonneeSync () ;
Afficheur a = new AfficheurSync(c,
(Applet) this) ;
a.start() ;
Modifieur b = new ModifieurSync (c) ;
b.start() ;
}
public void paint(Graphics g) {
synchronized (c) {
int x = c.x() ;
String sx = new Integer(x).toString() ;
g.drawString(sx,10,15) ;
int y = c.y() ;
String sy = new Integer(y).toString() ;
g.drawString(sy,100,15) ;
if ( x != y )
cpt++ ;
String sc = new Integer(cpt).toString() ;
g.drawString(sc,200,15) ; }
}
} |
|
|