java编写一个多线程程序,实现这样一个目标: ①存在一个对象,该对象有一个int类型的成员变量counter,该成员变量的初始值为0. ②创建四个线程,其中两个线程对该对象的成员变量counter加1,另外两个线程对该对象的成员变量减1. ③输出该对象成员变量counter每次变化后的值。 ④最终输出的结果为:1010101010...
时间: 2024-02-26 19:58:50 浏览: 64
以下是使用 Java 编写的多线程程序,实现对一个对象成员变量的加减操作并输出变化后的值。
```java
class Counter {
private int counter = 0;
public synchronized void increment() {
counter++;
System.out.print(counter);
}
public synchronized void decrement() {
counter--;
System.out.print(counter);
}
}
class IncrementThread implements Runnable {
private Counter counter;
public IncrementThread(Counter counter) {
this.counter = counter;
}
public void run() {
for (int i = 0; i < 5; i++) {
counter.increment();
}
}
}
class DecrementThread implements Runnable {
private Counter counter;
public DecrementThread(Counter counter) {
this.counter = counter;
}
public void run() {
for (int i = 0; i < 5; i++) {
counter.decrement();
}
}
}
public class TestCounter {
public static void main(String[] args) {
Counter counter = new Counter();
Thread incrementThread1 = new Thread(new IncrementThread(counter));
Thread incrementThread2 = new Thread(new IncrementThread(counter));
Thread decrementThread1 = new Thread(new DecrementThread(counter));
Thread decrementThread2 = new Thread(new DecrementThread(counter));
incrementThread1.start();
incrementThread2.start();
decrementThread1.start();
decrementThread2.start();
}
}
```
程序中创建了一个 `Counter` 对象,它有一个 `counter` 成员变量。然后创建了四个线程,其中两个线程对该对象的成员变量加1,另外两个线程对该对象的成员变量减1。程序中使用了 `synchronized` 关键字来保证并发执行时的线程安全。最后输出的结果为:1010101010...。
阅读全文