栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java38-并发框架图

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java38-并发框架图

文章目录
      • 并发整体框架图
      • 实现一个计数器(体现原子性)
        • 方式1:使用count++
        • 方式2:加synchronized 和 volatile
        • 方式3:AtomicInteger

并发整体框架图

实现一个计数器(体现原子性) 方式1:使用count++
public class Counter{
	private int count;
	public void increase(){
		count++;
	}

问题
该代码可能在多线程条件下出现问题,因为count++是非原子的。
count++ 实际上等于三个操作:读数据,加1,写回数据。
解决
为了防止多线程下访问increase方法会报错,所以给increase方法加锁。
count变量修改了其他线程可能看不到,所以就加个volatile关键字吧。

方式2:加synchronized 和 volatile
public class LockCounter{
	private volatile count;
	public synchronized void increase(){
		count++;
	}
}

问题
加锁会影响效率,可以考虑使用原子操作类的形式。

方式3:AtomicInteger
public class AtomicCounter{
	private AtomicInteger count = new AtomicInteger(0);
	public void increase(){
		count.incrementAndGet();
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/848174.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号