java多线程 交替执行
时间: 2023-10-30 07:08:06 浏览: 125
java实现两个线程交替打印的实例代码
5星 · 资源好评率100%
Java多线程交替执行可以通过使用synchronized关键字和wait()、notify()方法来实现。具体实现方式可以参考以下步骤:
1. 创建两个线程对象并启动它们。
2. 在run()方法中使用synchronized关键字锁定一个共享对象,例如一个字符串对象。
3. 在第一个线程中打印奇数,然后调用共享对象的notify()方法唤醒等待的线程。
4. 在第二个线程中打印偶数,然后调用共享对象的notify()方法唤醒等待的线程。
5. 在每个线程中使用wait()方法使线程等待,直到被唤醒。
6. 在main()方法中使用join()方法等待两个线程执行完毕。
下面是一个简单的示例代码:
```
public class ThreadTest {
private static Object lock = new Object();
private static int num = 1;
private static boolean flag = true;
public static void main(String[] args) {
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
while (num <= 100) {
synchronized (lock) {
if (!flag) {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
System.out.println(Thread.currentThread().getName() + ": " + num);
num++;
flag = false;
lock.notify();
}
}
}
}
});
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
while (num <= 100) {
synchronized (lock) {
if (flag) {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
System.out.println(Thread.currentThread().getName() + ": " + num);
num++;
flag = true;
lock.notify();
}
}
}
}
});
t1.start();
t2.start();
try {
t1.join();
t2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
阅读全文