volatile 深入理解

Volatile是教材中必讲,而且听上去很简单的一个核心多线程关键字。 其核心是在于:Java并发包和基础AQS中就会用该关键词来标记状态。(另一个核心是CAS操作) 先简单回顾一下 volatile 的基本表述:volatile 能够保证所有缓存的内容始终保持一致,其含义是,任何一个线程对共...

2019-01-16 22:21:04

阅读数 78

评论数 1

Kotlin语法糖

    用Kotlin一段时间了,主要是用来做本地数据分析,需要大量的字符串和集合处理,用原生Java着实麻烦了点。Python虽然也可以用,奈何公司自研的分布式数据库只支持Java访问,只能找一个JVM语言来用了。      Groovy和Scala都尝试过:     Groovy对Java...

2019-01-08 14:51:10

阅读数 74

评论数 0

并发容器及其原理

锁的使用,相当于对象的修改串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。 因此Java5.0开始针对多线程并发访问设计,提供了并发性能较好的并发容器,引入了java.util.concurrent包。  而为了达到尽可能提高效率的目...

2017-12-24 21:14:41

阅读数 582

评论数 0

[聊聊架构] 日请求量过亿,谈陌陌的 Feed 服务优化之路

陌陌Feed优化 1:内容存储方式 2:GEO信息优化 3:Redis扩容

2017-12-24 14:41:27

阅读数 1253

评论数 0

SpringBoot 1.X 优雅停机 ( shutdown gracefully )

SpringBoot 1.X 优雅停机 默认的 shutdown endpoint 在实现上会造成正在运行的任务异常中断,这和SpringBoot的默认实现有关。 为了解决这个问题,而定制了优雅停机方案。

2017-12-14 18:41:03

阅读数 5019

评论数 3

[架构师之路] 数据库拆分 系列(下)

数据库拆分 系列(下) 多对多的拆分 多Key业务的拆分 无停机平滑扩容

2017-12-13 18:53:31

阅读数 290

评论数 0

[架构师之路] 数据库拆分 系列(上)

架构师之路的数据库拆分系列:上 垂直拆分原则 单Key的水平拆分 1对多的水平拆分方式

2017-12-13 18:18:35

阅读数 413

评论数 0

Java多线程控制

系统性解析Java中多线程的管理。这是很多并发编程的基础,也是JavaCurrent包的实现基础。

2017-12-10 21:06:49

阅读数 210

评论数 0

[核心工具] Collections

详细解答核心的Collections & Map, 从内部实现到关键调整因子。

2017-12-08 22:50:45

阅读数 70

评论数 0

[架构师之路] 深入浅出搜索引擎 系列

集合了《架构师之路》公众号,截止到20171202的关于搜索架构设计和实现的文章。 文章浅显易懂,从最核心的 索引建立、结果合并、增量更新、重复检测,到整体架构设计都有。虽然细节不多,但是思路很清晰数据量级分析很清楚,颇有参考价值。 http://zhuanlan.51cto.com/art/2...

2017-12-03 17:11:46

阅读数 1467

评论数 0

善用 ApacheAB 和 VisualVM, 做开发阶段代码性能调优

在开发阶段, 开发人员往往很难意识到代码对性能的影响, 很多时候需要最终的压力测试来逐一排除. 但是作为创业公司, 往往没有专门的压力测试流程, 那么核心开发人员在核心业务逻辑的开发阶段就需要对代码造成的性能问题作出预判和解决, 这里提供开发本地可操作的, 基于 ApacheAB 和 Visual...

2017-12-03 14:22:04

阅读数 318

评论数 0

[架构师之路] 高可扩展表结构系列

http://chuansong.me/n/1298388046739 啥,又要为表增加一列属性? 2016-12-14 http://chuansong.me/n/1311070246933 这才是真正的表扩展方案 2016-12-15 http://chuansong.me/n/1496202...

2017-11-28 19:20:28

阅读数 2106

评论数 0

深入理解ThreadLocal

什么是ThreadLocal 为什么要有ThreadLocal 实现原理 使用方式 深入所谓内存ThreadLocal的内存泄露问题(参考)

2017-11-27 20:31:49

阅读数 108

评论数 0

[通过scikit-learn掌握机器学习] 02 线性回归

本章介绍用线性模型处理回归问题。回归问题的目标是预测出响应变量的连续值。 同时讲一下如何做模型评估。 最后稍微提了一下正则化,即对抗过度拟合的方法。

2017-11-27 19:00:49

阅读数 448

评论数 0

[通过scikit-learn掌握机器学习] 01基础

本章主要讲机器学习(Machine Learning)的基本概念, 机器学习算法的应用,监督学习和无监督学习(supervised-unsupervised learning)的应用场景,训练和测试数据的用法,学习效果评估方式。      最后,对scikit-learn进行一些简单的介绍。

2017-11-22 19:31:29

阅读数 285

评论数 0

[架构师之路]10w定时任务,如何高效触发超时 2017-03-09

很多时候,业务有定时任务或者定时超时的需求,当任务量很大时,可能需要维护大量的timer,或者进行低效的扫描。 本文介绍了环形队列计时器,是一个非常巧妙高效低耗的实现。

2017-11-22 18:48:14

阅读数 793

评论数 0

[腾讯云] 微信序列号生成器架构设计及演变

微信在立项之初,就已确立了利用数据版本号实现终端与后台的数据增量同步机制,确保发消息时消息可靠送达对方手机,避免了大量潜在的家庭纠纷。时至今日,微信已经走过第五个年头,这套同步机制仍然在消息收发、朋友圈通知、好友数据更新等需要数据同步的地方发挥着核心的作用。而在这同步机制的背后,需要一个高可用、高...

2017-11-21 20:27:42

阅读数 225

评论数 0

[架构师之路] 细聊分布式ID生成方法 2016-02-22

几乎所有的业务系统,都有生成一个记录标识的需求,这个记录标识往往就是数据库中的唯一主键. 记录标识生成(也就是上文提到的三个XXX-id)的两大核心需求: (1)全局唯一 (2)趋势有序 这也是本文要讨论的核心问题:如何高效生成趋势有序的全局唯一ID。

2017-11-21 19:34:24

阅读数 155

评论数 0

代码质量管理 阿里Java插件 + Upsource

代码质量管理: 1:提交前,通过阿里的Java开发规范插件来检查代码中存在的问题 2:提交之后,通过其他人来Code Review的方式来管理,使用Upsource工具来方便的进行CodeReview。

2017-10-23 18:04:11

阅读数 1626

评论数 0

Redis 事件通知(keyspace & keyevent notification)

Redis 事件通知(keyspace & keyevent notification) 对于每个修改数据库的操作,键空间通知都会发送两种不同类型的事件消息:keyspace 和 keyevent。以 keyspace 为前缀的频道被称为键空间通知(key-space notificati...

2017-10-13 18:10:50

阅读数 5566

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭