摘要:
一.声明式事务配置: 二.声明式事务失效,原因 根本原因:由子容器扫描装配了@Service 注解的实例。 spring的context是父子容器,由ServletContextListener 加载spring配置文件产生的是父容器,springMVC加载配置文件产生的是子容器,子容器对Contr 阅读全文
摘要:
1、减少锁的持有时间,只对关键的代码块加锁,减少synchronized锁内部的无关模块; 2、减小锁粒度,如Collections.synchronizedMap(map)返回线程安全的map会锁整张map;而ConcurrentHashMap会通过segment只对当前要查询的链表进行加锁(ha 阅读全文
摘要:
package com.ada.wuliu.worker.web.cooperation.worker; public class TestOne { abstract class Father{ private int id; void before(){ id=1; System.out.println... 阅读全文
摘要:
为避免操作系统频繁的创建和关闭线程,我们可以让创建的线程进行服用,使用线程池之后,直接从线程池获取线程,如果关闭线程,将线程归还给池子 线程池jdk提供了一套executor框架,在concurrnet包下,其中最核心的是ThreadPoolExecutor public static Execut 阅读全文
摘要:
1、cynchronized扩展:可重锁入ReentrantLock ReentrantLock是通过cas算法实现的 RenntrantLock lock=new ReentrantLock(); lock.lock();//如果资源被占用则会等待 //代码锁定区域 finally{ //必须手动 阅读全文
摘要:
ReentrentLock lock=new ReentrentLock(); lock.lock(); //锁的代码 finally{ lock.unlock(); } ReentrentLock 比synchronized具有更好的扩展性 ReentrentLock 可以通过lockInterr 阅读全文
摘要:
package com.ada.wuliu.shipper.front.service.thread; public class TestDeamon { public static class DeamonT extends Thread{ public void run(){ while(true){ System.out.println("... 阅读全文
摘要:
ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的性能。 阅读全文
摘要:
wait和notify是针对sychronized锁定对象的 sychronized(object)object.wait();//释放object的锁sychronized(object)object.notify();//会随机唤起一个对object枷锁的等待线程,这个过程是随机唤醒的,不公平的 阅读全文
摘要:
hashmap市基于table和单向链表 table中存放hash值,table中存放着单向链表,查询时先计算对象hash值,找到table中对应值,然后查询链表。 ConcurrentHashMap继承与Hashmap通过Segment在读写数据时锁部分hashmap的hashtable,而不是锁 阅读全文