首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
CodingDiray
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
15
文章 14
沸点 1
赞
15
返回
|
搜索文章
最新
热门
JDK容器类List,Set,Queue源码解读
List,Set,Queue都是继承Collection接口的单列集合接口。List常用的实现主要有ArrayList,LinkedList,List中的数据是有序可重复的。Set常用的实现主要是HashSet,Set中的数据是无序不可重复的。Queue常用的实现主要有Arra…
JDK容器类Map源码解读
java.util.Map接口是JDK1.2开始提供的一个基于键值对的散列表接口,其设计的初衷是为了替换JDK1.0中的java.util.Dictionary抽象类。Dictionary是JDK最初的键值对类,它不可以存储null作为key和value,目前这个类早已不被使用…
深入理解Java中的锁(三)
读写锁维护一对关联锁,一个只用于读操作,一个只用于写操作。读锁可以由多个线程同时持有,又称共享锁。写锁同一时间只能由一个线程持有,又称互斥锁。同一时间,两把锁不能被不同线程持有。读写锁适合读取操作多于写入操作的场景,改进互斥锁的性能,比如集合的并发安全性改造,缓存组件等。 锁降…
深入理解Java中的锁(二)
lockInterruptibly() 方法一般更昂贵,有的实现类可能没有实现 lockInterruptible() 方法。只有真的需要用中断时,才使用,使用前应看清实现类对该方法的描述。 Object中的wait(), notify(), notifyAll()方法是和sy…
深入理解Java中的锁(一)
自旋锁 : 是指当一个线程在获取锁的时候,如果锁已经被其他线程获取,那么该线程将循环等待,然后不断判断锁是否能够被成功获取,直到获取到锁才会退出循环。 要了解synchronized加锁在JVM中是如何实现的,就有必要了解Java对象在JVM中到底是如何存储的。我们知道JVM中…
线程安全之原子操作
原子性就是指该操作是不可再分的。不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。 原子操作可以是一个步骤,也可以是多个步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分(不可中断性)。 将操作视作一个整体,资源在该次操作中保持一致,这是原…
线程安全之可见性问题
首先Java内存模型(JMM)和JVM运行时数据区并不是一个东西,许多介绍Java内存模型的文章描述的堆,方法区,Java虚拟机栈,本地方法栈,程序计数器这东西并不是Java内存模型的内容而是JVM运行时数据区的内容。 要理解二者的区别就要了解《Java虚拟机规范》和《Java…
线程池应用及实现原理剖析
为什么要用线程池线程是不是越多好?线程在Java中是一个对象,更是操作系统的资源,线程额创建和销毁都需要时间,如果创建时间+销毁时间>执行任务时间就很不合算Java对象占用堆内存,操作系统线程占用系统
CPU缓存和内存屏障
L3 Cache(三级缓存)现在都是内置的, 而它的实际作用既是, L3缓存的应用可以进一步降低内存延迟, 同时提升大数据量计算时处理器的性能. 具有较大L3缓存的处理器更有效的文件系统缓存行为及较短消息和处理器队列长度. 一般是多核共享一个L3缓存 多CPU读取同样的数据进行…
线程通信
示例: 线程1区买包子 , 没有包子, 则不执行。 线程2生产包子, 通知线程1继续执行 调用suspend挂起目标线程, 通过resume可以恢复线程执行, 对调用顺序有要求,也要开发者自己注意锁的释放。这个被弃用的API, 容易死锁,也容易导致永久挂起。 这些方法只能由同一…
下一页
个人成就
文章被点赞
47
文章被阅读
17,285
掘力值
577
关注了
15
关注者
7
收藏集
0
关注标签
47
加入于
2019-10-30