一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。
总体流程:
首先显示java进程的线程列表,查找运行时间长的线程:1ps -mp pid -o THREAD,tid,time
或者使用top命令的线程模式:1top -p pid
然后按’H’,进入线程模式,第一列PID为tid(线程id)
其次将需要的线程ID转换为16进制格式:1printf "%x\n" tid
最后打印线程的堆栈信息:1jstack pid |grep tid -A 30
一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。
总体流程:
首先显示java进程的线程列表,查找运行时间长的线程:1ps -mp pid -o THREAD,tid,time
或者使用top命令的线程模式:1top -p pid
然后按’H’,进入线程模式,第一列PID为tid(线程id)
其次将需要的线程ID转换为16进制格式:1printf "%x\n" tid
最后打印线程的堆栈信息:1jstack pid |grep tid -A 30
curl命令可以方便的调试接口,发送网络请求。
Java范型有点类似与C++中的模板类或者模板方法,对类型进行抽象。
classpath是指WEB-INF文件夹下的classes目录。通常我们需要在Spring的容器配置文件中指定类路径下的配置文件。
本文介绍classpath: 与 classpath*:写法的区别。
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。
参考Maven Doc Introduction to the Dependency Mechanism