java语言实现:创建两个线程,线程A打印1-10之间的偶数。线程B打印1-10之间的奇数。两个操作交替执行
时间: 2024-06-11 08:08:38 浏览: 59
以下是java语言实现的代码:
```java
public class PrintEvenOddNumber {
private static int count = 1;
private static final Object lock = new Object();
public static void main(String[] args) {
Thread threadA = new Thread(new Runnable() {
@Override
public void run() {
while (count <= 10) {
synchronized (lock) {
if (count % 2 == 0) {
System.out.println(Thread.currentThread().getName() + ": " + count);
count++;
}
}
}
}
}, "Thread A");
Thread threadB = new Thread(new Runnable() {
@Override
public void run() {
while (count <= 10) {
synchronized (lock) {
if (count % 2 != 0) {
System.out.println(Thread.currentThread().getName() + ": " + count);
count++;
}
}
}
}
}, "Thread B");
threadA.start();
threadB.start();
}
}
```
在这个程序中,我们使用了一个静态变量 `count` 来保持要打印的数字,而且我们使用了一个 `lock` 对象来同步两个线程之间的操作。在每个线程中,我们使用了一个 while 循环来打印数字,直到 `count` 的值达到了 10。在每个循环中,我们使用了 synchronized 块来锁定 `lock` 对象,以确保只有一个线程可以访问 `count` 变量。在 `synchronized` 块中,我们检查 `count` 的值是否为偶数或奇数,并打印相应的数字。在打印完数字后,我们将 `count` 的值加 1,以便下一个循环可以打印下一个数字。最后,我们启动线程A和线程B,并等待它们完成执行。
阅读全文