**
JAVA多线程实现A,B交替打印代码实现
**
package com.test;
public class Test {
public static void main(String[] args) {
S s =new S();
new A(s).start();
new B(s).start();
}
}
class A extends Thread{
S s;
public A(S s) {
this.s = s;
}
@Override
public void run() {
for (int i = 0; i < 100; i++) {
s.a();
}
}
}
class B extends Thread{
S s;
public B(S s) {
this.s = s;
}
@Override
public void run() {
for (int i = 0; i < 100; i++) {
s.b();
}
}
}
class S{
boolean flag=false;
public synchronized void a(){
if (flag){
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("A");
flag=!flag;
this.notifyAll();
}
public synchronized void b(){
if (!flag){
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("B");
flag=!flag;
this.notifyAll();
}
}