import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @author: 向振华
* @date: 2019/12/23 09:33
*/
public class MyExercises {
private static final Object lock = new Object();
public static void main(String[] args) {
MyExercises myExercises1 = new MyExercises();
MyExercises myExercises2 = new MyExercises();
ExecutorService executor = Executors.newFixedThreadPool(10);
executor.submit(myExercises2::B);
executor.submit(myExercises1::A);
}
private void A() {
synchronized (lock){
while (true) {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
try {
lock.notify();
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
continue;
}
System.out.println("A ---> " + i);
}
System.out.println("---------------------------------");
}
}
}
private void B() {
synchronized (lock){
while (true) {
try {
lock.wait();
System.out.println("B ---> 收到...");
lock.notify();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}