首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
做个好人君
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
30
文章 30
沸点 0
赞
30
返回
|
搜索文章
最新
热门
关于JVM堆外内存的一切
Java中的对象都是在JVM堆中分配的,其好处在于开发者不用关心对象的回收。但有利必有弊,堆内内存主要有两个缺点:1.GC是有成本的,堆中的对象数量越多,GC的开销也会越大。2.使用堆内内存进行文件、网络的IO时,JVM会使用堆外内存做一次额外的中转,也就是会多一次内存拷贝。 …
Java引用类型原理剖析
Java中一共有4种引用类型(其实还有一些其他的引用类型比如FinalReference):强引用、软引用、弱引用、虚引用。其中强引用就是我们经常使用的Object a = new Object(); 这样的形式,在Java中并没有对应的Reference类。 本篇文章主要是分…
读写一致性的一些思考
先说明下,本文要讨论的多线程读写是指一个线程写,一个或多个线程读,不包括多线程同时写的情况。 试想下这样一个场景:一个线程往hashmap中写数据,一个线程往hashmap中读数据。 这样会有问题吗?如果有,那是什么问题? 相信大家都知道是有问题的,但至于到底是什么问题,可能就…
linux内核级同步机制--futex
在关于同步的一点思考-下一文中,我们知道glibc的pthread_cond_timedwait底层是用linux futex机制实现的。 理想的同步机制应该是没有锁冲突时在用户态利用原子指令就解决问题,而需要挂起等待时再使用内核提供的系统调用进行睡眠与唤醒。换句话说,在用户态…
关于同步的一点思考-下
ReentrantLock的实现网上有很多文章了,本篇文章会简单介绍下其java层实现,重点放在分析竞争锁失败后如何阻塞线程。 因篇幅有限,synchronized的内容将会放到下篇文章。 ReentrantLock是jdk中常用的锁实现,其实现逻辑主语基于AQS(juc包中的…
关于同步的一点思考-上
但对于其内部如何实现的,一般人可能知道的并不多。 本篇文章将从如何实现简单的锁开始,介绍linux中的锁实现futex的优点及原理,最后分析java中同步机制如wait/notify, synchronized, ReentrantLock。 首先,如果要你实现操作系统的锁,该…
分布式Redis深度历险-Clustor
本文为分布式Redis深度历险系列的第三篇,主要内容为Redis的Clustor,也就是Redis集群功能。 Redis集群是Redis官方提供的分布式方案,整个集群通过将所有数据分成16384个槽来进行数据共享。 一个集群的所有数据被分为16384个槽,可以通过CLUSTER…
分布式Redis深度历险-Sentinel
本文为分布式Redis深度历险系列的第二篇,主要内容为Redis的Sentinel功能。 上一篇介绍了Redis的主从服务器之间是如何同步数据的。试想下,在一主一从或一主多从的结构下,如果主服务器挂了,整个集群就不可用了,单点问题并没有解决。Redis使用Sentinel解决该…
分布式Redis深度历险-复制
Redis深度历险分为两个部分,单机Redis和分布式Redis。 本文为分布式Redis深度历险系列的第一篇,主要内容为Redis的复制功能。 同步可以理解为全量,是将主服务器某一时刻的所有数据全部同步到从服务器。 命令传播可以理解为增量,当主服务器数据被修改时,主服务器向从…
JVM垃圾回收历险
一句话介绍,垃圾回收就是由程序自动的回收已死对象。 已死对象就是程序中一定不会再被使用到的对象。 垃圾回收可以分为两个部分,一是如何判断对象已死,二是如何清理掉已死对象。 引用计数法比较好理解,就是为每个对象分配一个计数器,当一个对象被另一个对象引用时,其对应的计数器+1,当引…
下一页
个人成就
文章被点赞
443
文章被阅读
103,778
掘力值
2,376
关注了
0
关注者
252
收藏集
0
关注标签
1
加入于
2018-01-04