Thread Synchronization Example

Meaning of the title: the establishment of three threads, A thread print 10 A, B thread print 10 B, C thread print 10 C, requires threads to run simultaneously, alternately printed 10 times ABC. The problem with the Object wait (), notify () can be easily solved.

code show as below:

public class MyThreadPrinter2 implements Runnable {

private String name;
private Object prev;
private Object self;

private MyThreadPrinter2(String name, Object prev, Object self) {
this.name = name;
this.prev = prev;
this.self = self;
}

@Override
public void run() {
int count = 10;
while (count > 0) {
synchronized (prev) {
synchronized (self) {
System.out.print(name);
count--;

self.notify();
}
try {
prev.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

}
}

public static void main(String[] args) throws Exception {
Object a = new Object();
Object b = new Object(http://www.amjmh.com/v/);
Object c = new Object();
MyThreadPrinter2 pa = new MyThreadPrinter2("A", c, a);
MyThreadPrinter2 pb = new MyThreadPrinter2("B", a, b);
MyThreadPrinter2 pc = new MyThreadPrinter2("C", b, c);


new Thread(pa).start();
new Thread(pb).start();
new Thread(pc).start(); }
}

Guess you like

Origin www.cnblogs.com/hyhy904/p/11369953.html