03 2015 档案
摘要:经过前面几篇文章的铺垫,今天我们终于要看看AQS的庐山真面目了,建议第一次看AbstractQueuedSynchronizer类源码的朋友可以先看下我前面几篇文章:《Java并发包源码学习之AQS框架(一)概述》《Java并发包源码学习之AQS框架(二)CLH lock queue和自旋锁》《Ja...
阅读全文
摘要:以下内容主要整理自官方文档。为什么使用 Protocol Buffers.proto文件Protocol Buffers 语法编译.proto文件Protocol Buffers API枚举和嵌套类Builders vs. Messages解析和序列化Writing A MessageReading...
阅读全文
摘要:接着上一篇文章今天我们来介绍下LockSupport和Java中线程的中断(interrupt)。其实除了LockSupport,Java之初就有Object对象的wait和notify方法可以实现线程的阻塞和唤醒。那么它们的区别 是什么呢?主要的区别应该说是它们面向的对象不同。阻塞和唤醒是对于线程...
阅读全文
摘要:上一篇文章提到AQS是基于CLH lock queue,那么什么是CLH lock queue,说复杂很复杂说简单也简单, 所谓大道至简:CLH lock queue其实就是一个FIFO的队列,队列中的每个结点(线程)只要等待其前继释放锁就可以了。AbstractQueuedSynchronizer...
阅读全文
摘要:AQS其实就是java.util.concurrent.locks.AbstractQueuedSynchronizer这个类。 阅读Java的并发包源码你会发现这个类是整个java.util.concurrent的核心之一,也可以说是阅读整个并发包源码的一个突破口。比如读ReentrantLock...
阅读全文
摘要:前一篇介绍了HTTP/2,这一篇简单介绍下3月3号发布的MongoDB 3.0。What’s new in MongoDB 3.0?新的存储引擎WiredTigerMongoDB 3.0的存储引擎是插件式的,默认为新增的WiredTiger。WiredTiger相比原来的MMAPv1引擎的优点:文档...
阅读全文
摘要:新的一年,项目也要带着发展的眼光往前走,得跟上潮流,当然前提是自己真的用的上。 用的上用不上都得先简单了解下。2月下旬Google发布了首个基于HTTP/2的RPC框架GRPC,它是基于HTTP/2的,所以先了解下它,后续等深入研究了再回头说说GRPC。What’s new in HTTP/2?is...
阅读全文