java 线程分配_Java多线程原子引用分配
我有一个缓存,该缓存是使用Simeple HashMap实现的。喜欢 -
HashMap cache = new HashMap();
大部分时间都使用此缓存从中读取值。我有另一个重新加载缓存的方法,在这个方法的内部,我基本上创建了一个新的缓存,然后分配了引用。据我了解,对象引用的分配是Java中的Atomic。
public class myClass {
private HashMap cache = null;
public void init() {
refreshCache();
}
// this method can be called occasionally to update the cache.
public void refreshCache() {
HashMap newcache = new HashMap();
// code to fill up the new cache
// and then finally
cache = newcache; //assign the old cache to the new one in Atomic way
}
}
我了解,如果我不将缓存声明为易失性,则其他线程将无法看到更改,但是对于我的用例而言,将缓存中的更改传播到其他线程不是时间紧迫的,它们可以继续使用旧缓存延长时间。
您看到任何线程问题吗?考虑到许多线程正在从高速缓存中读取数据,并且仅在重新加载高速缓存时才读取。
编辑-我的主要困惑是我不必在这里使用AtomicReference,因为赋值操作本身是原子的?
编辑-
我知道要使排序正确,我应该将缓存标记为易失性。但是,如果将refreshCache方法标记为已同步,则不必使高速缓存为易失性,因为已同步块将同时处理顺序和可见性?
java 线程分配_Java多线程原子引用分配相关推荐
- java线程钥匙_Java多线程并发编程/锁的理解
一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题. 在运用了 限流/加锁等 ...
- java线程池_Java多线程并发:线程基本方法+线程池原理+阻塞队列原理技术分享...
线程基本方法有哪些? 线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等. 线程等待(wait) 调用该方法的线程进入 WAITING 状态,只有等 ...
- java线程基础_Java多线程基础
前言 在我们工作和学习的过程中,Java线程我们或多或少的都会用到,但是在使用的过程上并不是很顺利,会遇到各种各样的坑,这里我通过讲解Thread类中的核心方法,以求重点掌握以下关键技术点: 线程的启 ...
- java线程入门_java多线程快速入门(一)
1.什么是进程 比如:QQ.QQ游戏.eclipse都是进程,可以通过任务管理器查看进程 2.进程和线程区别 线程是进程的一部分,一个进程可以包含多个线程,一个线程只能属于一个进程 进程是所有线程的集 ...
- java线程 锁_Java多线程(二) 多线程的锁机制
当两条线程同时访问一个类的时候,可能会带来一些问题.并发线程重入可能会带来内存泄漏.程序不可控等等.不管是线程间的通讯还是线程共享数据都需要使用Java的锁机制控制并发代码产生的问题.本篇总结主要著名 ...
- java线程设计模式_JAVA多线程设计模式
漫谈UML UML 类图 类和层次结构的关系 接口与实现 聚合 访问控制 类间的关联性 顺序图 处理流程和对象间的协调 时序图 Introduction 1 Java语言的线程 Java语言的线程 何 ...
- java 线程简介_java多线程介绍
java多线程介绍 多线程的基本实现 进程指运行中的程序,每个进程都会分配一个内存空间,一个进程中存在多个线程,启动一个JAVA虚拟机,就是打开个一个进程,一个进程有多个线程,当多个线程同时进行,就叫 ...
- java 线程 组成_java多线程
一:基本知识点 1.1线程与进程区别: 1.进程是资源分配的最小单位,线程是CPU调度的最小单位 2.一个进程由一个或多个线程组成 3.进程之间相互独立,每个进程都有独立的代码和数据空间,但同一进程下 ...
- java线程 教程_Java多线程系列教程
Java多线程系列教程 多线程是Java中不可避免的一个重要主体.从本章开始,我们将展开对多线程的学习.接下来的内容是对Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), n ...
最新文章
- java基础--日期--练习集锦
- python新闻推荐系统_python实现推荐系统(一)
- 使用SAP C4C rule editor动态控制UI上某个按钮是否显示 1
- RESTful服务的第三部分:HATEOAS和Richardson成熟度模型
- python 裁判文书网_python - 用selenium模拟登陆裁判文书网,系统报错找不到元素。...
- 历经7年双11实战,阿里巴巴是如何定义云原生混部调度优先级及服务质量的?
- 详解Parcel:快速,零配置web应用打包工具
- 数据结构—二叉排序树
- gdb调试动态链接so
- UVA - 10820欧拉函数的应用
- 量子力学对计算机影响,人们对量子力学的理解有误?
- 思维导图 · App的商业模式:如何寻找商业化
- 计算机excel怎么删除重复项,在Excel中巧妙提示重复输入和删除重复数据
- 安装eclipse c++版本neno
- 冬天洗衣不动手,这几款智慧洗衣机可以帮到你
- Unity打包后的日志
- 大学物理/量子物理基础/康普顿效应
- Android新机系统要求,原神手机端最低配置要求
- 最值得推荐的6个物联网开发平台
- 小学计算机输入法主题教研设计,《拼音输入法》教学设计.doc
热门文章
- mysql二进制日志被删除无法启动_mysql二进制日志文件出错导致mysql服务无法启动...
- 【控制】滑动模型控制(Sliding Mode Control)
- 3.3 集束搜索-深度学习第五课《序列模型》-Stanford吴恩达教授
- TCL foreach的用法
- 【Android工具】最新测试谷歌play耗电情况,各种品牌安装谷歌play方法,GooglePlay...
- 基于Quartus II软件FPGA与PC之间的串行通信系统开发(9000+字)
- 用系统滚动条实现NumericUpDown的原理
- 算法与数据结构之二分查找
- 文件描述符fd、文件指针fp和vfork()
- Shortest Distance from All Buildings