学习Lock中Condition的使用
有java开发经验的朋友肯定知道Lock,不管是培训班还是自学,大家知道Lock代替的是synchronized关键字。那么Condition又是在哪里使用呢?
有java开发经验的朋友肯定知道Lock,不管是培训班还是自学,大家知道Lock代替的是synchronized关键字。那么Condition又是在哪里使用呢?
以下部分内容整理自《分布式Java应用:原理与实践》——林昊
随着系统自身数据量的增长,访问量增加,系统的响应通常会越来越慢,或者是新的功能在性能上无法满足修去,这个时候需要对系统进行性能调优。调优是一个复杂的过程,涉及的方面有:硬件,操作系统,运行环境软件和应用本身。
做java开发以来,有一个问题一直萦绕在脑海,那就是java程序为什么会占用那么多的虚拟内存。之前也没有深究,因为服务器内存够大。但是最近用上了docker容器,每个容器基本上就几个GB的内存,内存占用过大的问题必须得解决了。
在查看java.sql.DriverManager
源码时,发现有这么一个静态方法叫做loadInitialDrivers()
。在这个方法里,我发现在项目启动中驱动管理器会从系统变量jdbc.drivers
中获取具体的驱动实现并注册,其次会使用SPI注册驱动。这些我在 再谈驱动注册 中已经讲过了,那么什么是SPI?怎么用?
前两天看Spring框架参考手册,发现SpringMVC在4.0版本上支持异步请求处理。废话不多说,开始异步请求之旅。
打包是一个比较头疼的事情,默认maven打包的结果只包含项目本身的代码,如果要执行代码,还得带上依赖。如果希望将所有依赖放到指定的文件夹下,再在目录下写入shell脚本等之类的事情。maven-shade-plugin插件不能满足需求,而maven-assembly-plugin插件能够帮我们合理地归档文件。