- 浏览: 1247 次
- 来自: ...
最新评论
文章列表
都知道jstack是干嘛的
本文讲如何看它的输出内容:
1. synchronized
已经进入临界区,sleep,在边界等待
@Test
public void testSync() {
final String s = "test";
Runnable task = new Runnable() {
public void run() {
synchronized (s) {
try {
...
synchronized
- 博客分类:
- JVM
首先说下其使用特点:
排他:一个对象的锁只在一个时间段内,只能被一个线程持有,其它企图持有锁的线程都处于blocked状态(或是自旋状态running)
非公平:不是先申请就能先得到锁(jdk1.5后,ReentrantLock可以代替synchronized,可选择公平还是非公平,不过公平锁的吞吐量要低很多,数倍,ReentrantLock的效率不一定更高,但是代码会更易读)
内部:
先介绍下对象头信息,JVM里面每个对象都有一个对象头,普通对象两个字,数组3个字(字长为虚拟机位数,32、64)
长度
内容
说明
字(32/64)
Ma ...