摘要:
Java 提供了两种锁机制来控制多个线程对共享资源的互斥访问,第一个是 JVM 实现的 synchronized,而另一个是 JDK 实现的 ReentrantLock。这两种锁以及后面提到的cas 和 volatile实际上是同步与互斥的基础。 阅读全文
摘要:
java.util.concurrent(J.U.C)大大提高了并发性能,AQS 被认为是 J.U.C 的核心。它核心是利用volatile和一个维护队列。
AQS其实就是java.util.concurrent.locks.AbstractQueuedSynchronizer这个类。 阅读Java的并发包源码你会发现这个类是整个java.util.concurrent的核心之一,也可以说是阅读整个并发包源码的一个突破口。 阅读全文
摘要:
ConcurrentHashMap 并不是将每个方法都在同一个锁上同步并使得每次只能有一个线程访问容器,而是使用一种粒度更细的加锁机制来实现更大程度的共享,这种机制被称为分段锁。在这种机制中,任意数量的读取线程可以并发地访问Map,执行读取操作的线程和执行写入操作的线程可以并发地访问Map,并且一定数量的写入线程可以并发地修改Map。这样可以在并发条件下实现更高的吞吐量,而在单线程环境中只损失非常小的性能能。 阅读全文
摘要:
mysql性能优化 阅读全文
摘要:
为什么要用maven? 作为一跨平台的项目管理工具,它有着以下丰富的应用场景:
- 作为程序员,有相当一部分时间花在编译、运行单元测试、生成文档、打包、部署和发布等不起眼的工作上,而maven将这一系列流程做了生命周期的映射,一键命令满足你,这就是构建。
- jar包漫天飞,相当多开源的轮子供你使用,但是无论在本地还是网络上,轮子的存储有相当的冗余与杂乱,maven则做了仓库的中间人。
- 如果你想用测试框架,持续集成等功能,maven也有现成的插件支持。 阅读全文
摘要:
熟悉Jdk原理的重要性不言而喻,作为Java开发者或者面试者,了解其实现原理也显得更为装逼 阅读全文
摘要:
掌握基本的快捷键,简直对开发如虎添翼。 阅读全文
摘要:
经过仔细调研以及一些前辈老师兄等的推荐,整合了一些资源包括技术面试的和架构师发展之路的,丰富弱区域,拓展知识面,才能走的更远。 阅读全文
摘要:
Git是目前世界上最先进的分布式版本控制系统(没有之一) 阅读全文