- 博客(5)
- 收藏
- 关注
原创 Arthas 解读
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。官方文档地址:https://alibaba.github.io/arthas/GitHub地址:https://github.com/alibaba/arthas/前言以前只知道使用Debug(原理是使用了JPDA技术)可以使用远程调试代码,生产不开...
2019-11-05 22:10:41 1064
原创 深入理解ThreadLoacal
前言ThreadLoacal是什么ThreadLocal是一个关于创建线程局部变量的类。通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。而使用ThreadLocal创建的变量只能被当前线程访问,故而每个线程都可以独立地改变自己所拥有的变量副本,而不会影响其他线程所对应的副本。ThreadLocal定义了四个方法:get():返回此线程局部变量的当前线程副本中的值。init...
2019-09-20 16:40:03 325
原创 零拷贝
前言这个词我们也经常在nio,netty,RocketMQ等框架中听到。字面意思就是数据不需要来回的拷贝,大大提升了系统的性能基本概念1.内核空间 / 用户空间操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空...
2019-08-15 21:40:33 114
原创 解析redisson的lock
多线程下的数据一致性问题一直都是热点问题,既要考虑到数据的一致,又要考虑实现的效率,在分布式情况下,这又要成为一种新的难题。分布式锁和我们java基础中学习到的synchronized略有不同,synchronized中我们的锁是个对象,当前系统部署在不同的服务实例上,单纯使用synchronized或者lock 已经无法满足对库存一致性的判断。本次主要讲解基于rediss 实现的分布式锁普通实...
2019-06-23 17:17:21 11929 4
原创 基于redis的分布式锁
存在死锁的问题SETNX实现分布式锁,可能会存在死锁的情况。与单机模式下的锁相比,分布式环境下不仅需要保证进程可见,还需要考虑进程与锁之间的网络问题。某个线程获取了锁之后,断开了与Redis 的连接,锁没有及时释放,竞争该锁的其他线程都会hung,产生死锁的情况。在使用 SETNX 获得锁时,我们将键 lock.id 的值设置为锁的有效时间,线程获得锁后,其他线程还会不断的检测锁是否已超时,如果超时,等待的线程也将有机会获得锁。然而,锁超时,我们不能简单地使用 DEL 命令删除键 lock.id 以释
2019-06-09 22:06:50 144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人