一个线程先打印Thread-1、Thread-2、Thread-3、 Thread-4、Thread-5
另一个线程再打印Thread-6、Thread-7、Thread-8、Thread-9、Thread-10
static SingletonDemo1 s = new SingletonDemo1();
/*public static SingletonDemo1 in=new SingletonDemo1();;
private SingletonDemo1(){}
public static SingletonDemo1 getSingletonDemo1(){
return in;
}*/
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
synchronized (s){
for(int i = 0;i<5;i++){
System.out.println("Thread-"+i);
}
}
}
}).start();
//线程2
new Thread(new Runnable() {
@Override
public void run() {
synchronized (s){
for(int i = 5;i<11;i++){
System.out.println("Thread-"+i);
}
}
}
}).start();
两个线程循环打印12121212….
static SingletonDemo1 s = new SingletonDemo1();
/*public static SingletonDemo1 in=new SingletonDemo1();;
private SingletonDemo1(){}
public static SingletonDemo1 getSingletonDemo1(){
return in;
}*/
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
synchronized (s){
for(int i = 0;i<5;i++){
System.out.println("1");
s.notify(); //唤醒线程2
try {
s.wait();//线程1进入等待
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}).start();
//线程2
new Thread(new Runnable() {
@Override
public void run() {
synchronized (s){
for(int i = 0;i<5;i++){
System.out.println("2");
s.notify();//唤醒线程1
try {
s.wait();//线程2进入等待
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}).start();