会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
幻月hah
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
5
6
7
8
9
10
11
12
13
下一页
2022年1月2日
十四、内存泄露和强软弱虚引用
摘要: 一、什么是内存泄露 不再会被使用的对象或者变量占用的内存不能被回收,就是内存泄露。 二、强引用 概念: 当内存不足,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回收,死都不收。 强引用是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”,垃圾收
阅读全文
posted @ 2022-01-02 01:23 幻月hah
阅读(171)
评论(0)
推荐(0)
2021年12月31日
十三、ThreadLocal
摘要: 一、什么是ThreadLocal ThreadLocal,提供线程局部变量。这些变量与正常的变量不同,因为每个线程在访问ThreadLocal实例的时候(通过其get或set方法)都有自己的、独立初始化的变量副本。ThreadLocal实例通常是类中的私有静态字段,使用它的目的是希望将状态(例如,用
阅读全文
posted @ 2021-12-31 16:29 幻月hah
阅读(63)
评论(0)
推荐(0)
2021年12月30日
十二、高并发统计为什么用LongAdder
摘要: LongAdder,在无竞争的情况下跟AtomicLong一样,对同一个base进行操作。当出现竞争关系时则是采用化整为零的做法,用空间换时间,用一个数组cells,将一个value拆分进这个数组cells。多个线程需要同时对value进行操作时候,可以对线程id进行hash得到hash值,再根据h
阅读全文
posted @ 2021-12-30 17:24 幻月hah
阅读(163)
评论(0)
推荐(0)
十一、原子更新器
摘要: 使用目的: 以一种线程安全的方式操作非线程安全对象内的某些字段。 优点: 不用对对象加锁,只针对对象的某个属性进行原子类操作,提高并发性。 使用方式: 1、更新的对象属性必须使用public volatile修饰符。 2、因为对象的属性修改类型原子类都是抽象类,所以每次使用都必须使用静态方法newU
阅读全文
posted @ 2021-12-30 15:54 幻月hah
阅读(79)
评论(0)
推荐(0)
2021年12月28日
十、CAS
摘要: 一、什么是CAS Compare And Swap的缩写,中文翻译成比较并交换,实现并发算法时常用到的一种技术。它是一条CPU的原子指令,包含三个操作数——内存位置、预期原值及更新值。 执行CAS操作的时候,将内存位置的值与预期原值比较。 如果相匹配,那么处理器会自动将该位置值更新为新值。 如果不匹
阅读全文
posted @ 2021-12-28 17:27 幻月hah
阅读(73)
评论(0)
推荐(0)
2021年12月24日
九、volatile与Java内存模型
摘要: 一、被volatile修饰变量的两大特点 可见性。 有序性。 二、语义 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值立即刷新回主内存中。 当读一个volatile变量时,JMM会把该线程对应的本地内存设置为无效,直接从主内存中读取共享变量。 所以volatile的写内
阅读全文
posted @ 2021-12-24 10:51 幻月hah
阅读(69)
评论(0)
推荐(0)
2021年12月23日
八、Java内存模型JMM
摘要: 一、什么是JMM? 因为CPU运算速度远大于物理主存,CPU运行时并不是直接操作内存而是先把内存里面的数据读到缓存,因此内存的读和写操作就会造成不一样的问题。 Java虚拟机规范中试图定义一种Java内存模型(java Memory Model,简称JMM)来屏蔽掉各种硬什和操作系统的内存访问差异,
阅读全文
posted @ 2021-12-23 15:06 幻月hah
阅读(120)
评论(0)
推荐(0)
2021年12月22日
七、等待唤醒的三种方式
摘要: 一、Object的wait、notify 注: 1、wait、notify必须绑定synchronized使用。 2、wait、notify有先后顺序,必须先等待后唤醒。 3、wait后,会释放锁。 public class TestDemo01 { static Object obj = new
阅读全文
posted @ 2021-12-22 18:42 幻月hah
阅读(223)
评论(0)
推荐(0)
六、线程中断机制
摘要: 一、什么是中断? 首先, 一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop、Thread.suspend、Thread.resume都已经被废弃了。 其次, 在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。 因此
阅读全文
posted @ 2021-12-22 17:04 幻月hah
阅读(96)
评论(0)
推荐(0)
五、synchronized细节
摘要: public class test { public static void main(String[] args) { Phone phone = new Phone(); new Thread(() -> { phone.sendEmail(); }).start(); new Thread((
阅读全文
posted @ 2021-12-22 11:43 幻月hah
阅读(46)
评论(0)
推荐(0)
上一页
1
···
5
6
7
8
9
10
11
12
13
下一页
公告