随笔分类 -  渡劫之路-------高并发java编程实践

摘要:一.声明式事务配置: 二.声明式事务失效,原因 根本原因:由子容器扫描装配了@Service 注解的实例。 spring的context是父子容器,由ServletContextListener 加载spring配置文件产生的是父容器,springMVC加载配置文件产生的是子容器,子容器对Contr 阅读全文
posted @ 2017-10-12 13:22 流氓剑客 阅读(4585) 评论(0) 推荐(0)
摘要:1、cynchronized扩展:可重锁入ReentrantLock ReentrantLock是通过cas算法实现的 RenntrantLock lock=new ReentrantLock(); lock.lock();//如果资源被占用则会等待 //代码锁定区域 finally{ //必须手动 阅读全文
posted @ 2017-09-08 23:05 流氓剑客 阅读(714) 评论(0) 推荐(0)
摘要:ReentrentLock lock=new ReentrentLock(); lock.lock(); //锁的代码 finally{ lock.unlock(); } ReentrentLock 比synchronized具有更好的扩展性 ReentrentLock 可以通过lockInterr 阅读全文
posted @ 2017-09-08 15:45 流氓剑客 阅读(678) 评论(0) 推荐(0)
摘要:ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的性能。 阅读全文
posted @ 2017-09-08 10:15 流氓剑客 阅读(124) 评论(0) 推荐(0)
摘要:wait和notify是针对sychronized锁定对象的 sychronized(object)object.wait();//释放object的锁sychronized(object)object.notify();//会随机唤起一个对object枷锁的等待线程,这个过程是随机唤醒的,不公平的 阅读全文
posted @ 2017-09-08 10:13 流氓剑客 阅读(119) 评论(0) 推荐(0)
摘要:transient是在对象序列化的时候,不参与序列化的字段。 如LinkedList实现了Serializable,其中有变量transient int size = 0; 在Serializable序列化的时候size时不会参与序列化的,如用ObjectOutputStream读取LinkedLi 阅读全文
posted @ 2017-09-05 17:05 流氓剑客 阅读(1421) 评论(0) 推荐(0)