多线程之4-------java 5原子性操作类的应用

先了解java5 线程并发库

查看api中 java.util.concurrent.atomic 包,

一 AtomicInteger 类,在程序中可能对整数执行加,有可能你加完了,还没取得新值,别人又加,

别人一增加,取出来的数可能就不是我希望得到的, 使用AtomicInteger 类可以解决多线程访问整数的问题.

使用 AtomicInteger类流程如下:

1. 首先 用构造方法 new AtomicInteger(int initialValue) 初始化一个值,

AtomicInteger ai = new AtomicInteger(0);

2. 要增加 3, 这样写

ai.addAndGet(3);

在执行此方法时,中途如果别人要加,肯定加不进,必须我加完了,返回值以后别人才能操作, 确保别人不会打断我。

注意:要减,实现时就加 负数

总结,多个线程访问同一个整数的情况,就需要用 AtomicInteger 类。

二 AtomicIntegerArray 类, 整数数组

它同样有一个增加方法,addAndGet(int i, int delta), 这里i 表示数组下标;

三 AtomicIntegerFieldUpdater 类,操作类里的整型变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值