#Java编程# 设计两个线程对象对同一数据进行操作,一个线程执行减减操作,一个线程执行加加操作
设计两个线程对象对同一数据进行操作,一个线程执行减减操作,一个线程执行加加操作。(注意:每个线程的循环操作100次) 展开
import java.io.IOException;
import java.util.concurrent.atomic.AtomicInteger;
public class TestThread {
public static void main(String[] args) throws IOException, InterruptedException {
final AtomicInteger number = new AtomicInteger(0);// 起始的数字 0
Thread jiaFa = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("当前进程:加法线程 处理前数字:" + number + ",处理后数字:" + (number.incrementAndGet()));
}
}
});
Thread jianFa = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("当前进程:减法线程 处理前数字:" + number + ",处理后数字:" + (number.decrementAndGet()));
}
}
});
jiaFa.start();
jianFa.start();
jiaFa.join();
jianFa.join();
System.out.println("最终数字结果:" + number);
}
}
使用atomic包下的多线程类型对象能天生的解决多线程带来的安全问题,而且性能非常好