2018年10月10日

synchronized 加在方法和代码块底层实现区别

摘要: 1、同步方法块 被括起来的块分别有指令:monitorenter 和 monitorexit monitorenter: 从之前的笔记知道,每个对象都有一个监视器锁(monitor),当monitor被占用时就会处于锁定状态。线程就是执行monitorenter命令获取monitor锁的。 1、如果 阅读全文

posted @ 2018-10-10 13:51 植物大戰僵尸 阅读(1466) 评论(0) 推荐(0)

synchronized 和 lock 的区别

摘要: 先谈sleep与wait:sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运 行状态。另外,在调用sleep()方法的过程中,线程不会释放对象锁。 而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定 阅读全文

posted @ 2018-10-10 13:08 植物大戰僵尸 阅读(248) 评论(0) 推荐(0)

hashmap-put方法过程

摘要: 1、执行hash(Object key)得到hash值,再判断table是否为空,为空表明这是第一个元素插入,则先resize,初次大小默认16。 2、若不需要初始化,则判断要插入结点的位置是否为空,也就是没有产生Hash地址冲突,是则直接放入table。 3、否则产生了冲突,那么有两种情况:key 阅读全文

posted @ 2018-10-10 11:20 植物大戰僵尸 阅读(2734) 评论(0) 推荐(0)

导航