用Java 编写一个应用程序创建两个线程,一 个法程打印输出1-1000之间所有的奇数 另外一个线程打印输 1-1000之同所有的偶数,要求两个线程随机休眼 殴时间后继熊打印输出下一个数
时间: 2024-02-27 17:53:22 浏览: 72
好的,以下是使用Java语言实现的代码示例:
```java
public class MultiThreadDemo {
private static int num = 1;
private static final Object lock = new Object();
public static void main(String[] args) {
Thread oddThread = new Thread(new PrintOdd());
Thread evenThread = new Thread(new PrintEven());
oddThread.start();
evenThread.start();
}
static class PrintOdd implements Runnable {
@Override
public void run() {
while (num <= 1000) {
synchronized (lock) {
if (num % 2 == 1) {
System.out.println("奇数线程:" + num);
num++;
}
}
}
}
}
static class PrintEven implements Runnable {
@Override
public void run() {
while (num <= 1000) {
synchronized (lock) {
if (num % 2 == 0) {
System.out.println("偶数线程:" + num);
num++;
}
}
}
}
}
}
```
在上面的代码中,我们首先定义了一个静态变量`num`表示当前需要打印的数,初始值为1,同时定义了一个`lock`对象用于控制线程访问顺序。然后,我们创建了两个线程`oddThread`和`evenThread`,分别负责打印奇数和偶数。在每个线程的`run()`方法中,我们使用`synchronized`关键字来获取锁,然后判断`num`的奇偶性,如果是奇数就打印输出,并将`num`加1;如果是偶数就打印输出,并将`num`加1。最后,我们使用`synchronized`关键字释放锁。
这样,我们就实现了一个创建两个线程,一个线程打印输出1-1000之间所有的奇数,另一个线程打印输出1-1000之间所有的偶数,并且两个线程随机休眼的多线程程序。
阅读全文