java编写一个程序创建两个线程一个线程打印奇数另一个线程打印偶数要求打印1-100的数字。
以下是使用Java编写的满足要求的程序:
public class OddEvenPrinter {
private static final int MAX_NUMBER = 100;
private static int number = 1;
private static Object lock = new Object();
public static void main(String[] args) {
Thread oddThread = new Thread(new OddPrinter());
Thread evenThread = new Thread(new EvenPrinter());
oddThread.start();
evenThread.start();
}
static class OddPrinter implements Runnable {
@Override
public void run() {
while (number <= MAX_NUMBER) {
synchronized (lock) {
if (number % 2 != 0) {
System.out.println("Odd: " + number);
number++;
lock.notify();
} else {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}
static class EvenPrinter implements Runnable {
@Override
public void run() {
while (number <= MAX_NUMBER) {
synchronized (lock) {
if (number % 2 == 0) {
System.out.println("Even: " + number);
number++;
lock.notify();
} else {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}
}
这个程序创建了两个线程,一个OddPrinter线程负责打印奇数,一个EvenPrinter线程负责打印偶数。程序使用一个共享的number变量来记录当前需要打印的数字,通过synchronized关键字和wait/notify机制来实现线程的同步和互斥。当一个线程打印完一个数字后,会唤醒另一个线程,然后自己进入等待状态。通过这种方式,两个线程交替打印奇偶数,直到打印完1-100的数字
原文地址: https://www.cveoy.top/t/topic/ijaJ 著作权归作者所有。请勿转载和采集!