java语言实现:创建两个线程,线程A打印1-10之间的偶数。线程B打印1-10之间的奇数。两个操作交替执行
时间: 2024-05-02 14:20:19 浏览: 111
Java实现多线程轮流打印1-100的数字操作
代码如下:
```
public class PrintNumber {
private static Object lock = new Object(); // 定义一个锁对象
private static int count = 1; // 初始值为1
public static void main(String[] args) {
Thread thread1 = new Thread(() -> {
while (count <= 10) {
synchronized (lock) { // 加锁
if (count % 2 == 0) {
System.out.println(Thread.currentThread().getName() + ": " + count);
count++;
}
}
}
}, "Thread-A");
Thread thread2 = new Thread(() -> {
while (count <= 10) {
synchronized (lock) { // 加锁
if (count % 2 != 0) {
System.out.println(Thread.currentThread().getName() + ": " + count);
count++;
}
}
}
}, "Thread-B");
thread1.start(); // 启动线程1
thread2.start(); // 启动线程2
}
}
```
在该代码中,我们首先定义了一个锁对象lock和一个计数器count,然后创建了两个线程thread1和thread2。线程thread1负责打印偶数,线程thread2负责打印奇数。
在每个线程中,我们使用while循环保证打印的数字不超过10。然后使用synchronized关键字对锁对象进行加锁,确保两个线程交替执行。在加锁的代码块中,我们对计数器进行判断,打印偶数或奇数,并将计数器加1。
最后,我们启动两个线程。由于两个线程使用了同一个锁对象,因此它们会交替执行,打印出1-10之间的奇数和偶数。
阅读全文