首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
学习
订阅
一护
更多收藏集
微信扫码分享
微信
新浪微博
QQ
32篇文章 · 0订阅
深入理解读写锁ReentrantReadWriteLock
在并发场景中用于解决线程安全的问题,我们几乎会高频率的使用到独占式锁,通常使用java提供的关键字synchronized(关于synchronized可以看这篇文章)或者concurrents包中实现了Lock接口的ReentrantLock。它们都是独占式获取锁,也就是在同…
Java锁之ReentrantLock(二)
首先,直接尝试获取锁,获取成功直接结束。 在队列中,死循环式的判断前任节点是否是头节点,如果是头节点就尝试获取锁,如果不是就把自己挂起,等待前任节点唤醒自己,这样可以避免多个线程死循环带来的性能消耗。 锁释放成功了,接着就会唤醒在队列的后继节点,通过调用LockSupport.…
阿里巴巴黑科技调度系统揭秘 - 何剑 | JTalk 第六期
何剑,阿里巴巴高级技术专家,就职 Sigma 调度系统组。此前就职于 Hortonworks,YARN team 早期开发成员,曾负责多个重要 feature 在Hadoop YARN社区的开发,Hadoop Committer and PMC, 专注于资源管理系统,调度系统研…
Travis CI持续集成GitHub个人博客
使用Hexo搭建托管在Github上的个人博客,每次推送新博客到Github,Travis CI 自动构建并推送到博客项目的master分支上. 由于GitPages服务规定网页文件必须在master分支上,所以博客源码内容在项目的hexo-source分支. 最好使用Gith…
搞懂基本排序算法
基本排序算法按难易程度来说可以分为:冒泡排序,选择排序,插入排序,归并排序,选择排序。本文也将从这五种排序算法来讲解各自的中心思想,和 Java 实现方式。 冒泡排序恐怕是我们计算机专业课程上以第一个接触到的排序算法,也算是一种入门级的排序算法。 冒泡排序虽然简单但是对于 n …
JVM总结
域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图 程序计数器:是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示…
Java动态代理
1. 什么是代理 我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的;其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次…
宋宝华:火焰图 全局视野的 Linux 性能剖析
火焰图(Flame Graph)是由Linux性能优化大师Brendan Gregg发明的,和所有其他的trace和profiling方法不同的是,Flame Graph以一个全局的视野来看待时间分布,它从底部往顶部,列出所有可能的调用栈。其他的呈现方法,一般只能列出单一的调用…
JAVA堆外内存排查小结
这几天遇到一个比较奇怪的问题,觉得有必要和大家分享一下。我们的一个服务,运行在docker上,在某个版本之后,占用的内存开始增长,直到docker分配的内存上限,但是并不会OOM。版本的更改如下: 使用ps查看进程使用的内存和虚拟内存 ( Linux内存管理 )。除了虚拟内存比…