基本思路:使用wait/notify机制。
public class ThreadTest{
public static void main(String[] args){
Object lock = new Object();
Thread a = new A(lock);
Thread b = new B(lock);
a.start();
b.start();
}
}
class A extends Thread{
Object lock;
public A(Object lock){
this.lock = lock;
}
@Override
public void run (){
synchronized(lock){
for (int i = 1; i <= 8; i++) {
System.out.println(i);
if(i%2 == 0){
try{
lock.notify();
lock.wait();
}catch (InterruptedException e){
e.printStackTrace();
}
}
}
}
}
}
class B extends Thread{
Object lock;
public B(Object lock){
this.lock = lock;
}
@Override
public void run (){
synchronized(lock){
for (int i = 1; i <= 4; i++) {
System.out.println((char)(i+64));
try{
lock.notify();
lock.wait();
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
}

本文深入探讨了Java中线程同步的基本思路,通过具体代码示例解析了wait/notify机制的应用。展示了如何利用该机制实现两个线程之间的交替打印数字和字符,详细解释了synchronized关键字的作用以及wait和notify方法的正确使用方式。
861

被折叠的 条评论
为什么被折叠?



