- 博客(15)
- 资源 (3)
- 收藏
- 关注
原创 第9章 Future
背景介绍:假设有一个执行起来需要花时间的方法,我们就不需要等待执行结果出来了,而获取一张替代的提货单,这个提货单就Future参与者public class FutureMain { public static void main(String[] args) { System.out.println("main BEGIN"); Host host =
2016-12-29 17:01:28 358
原创 第八章 Worker Thread
背景介绍:工人线程会依次抓一件工作来处理。当没有工作时,工人线程会停下来等待新的工作Example:Channel类基于Producer-Consumer即队列,实现taskRequest,putRequest中心思想:将启动方法和执行方法分开,其他模式也遵循该思想,Thread-Per-Message 和 Command,即用Client Thread 启动Worker Thread
2016-12-29 16:17:40 313
原创 第七章 Thread-Per-Message
背景介绍:每一个消息一个线程,forexample :ThreadLocal from jdk1.2 java.lang.ThreadLocalpublic class Host { private final Helper helper = new Helper(); public void request(final int count, final c
2016-12-28 17:27:51 335
原创 第六章 Read-Write Lock(适合读取比写入次数频繁的时候)
背景介绍:将读取与写入分开来处理,在读取数据之前,必须获取用来读取的锁定。而要写入的时候,则必须获取用来写入的锁定。Example:在生产-消费基础上,加入ReadWriteLock, lock.readLock() -> lock.writeLock()
2016-12-28 17:03:20 396
原创 第五章 Producer-Consumer(操作系统的生产者消费者模式) 6-3 至 6-7
背景介绍:在生产者和消费者之间加入一个"桥梁参与者",通过它缓解多个生产者线程和消费者线程之间处理速度差。Example:厨师把东西放在桌子上,顾客从桌子上取东西吃,其中桌子就是这个桥梁参与者,如何往桌子放东西,可以通过Guarded Suspension,采用队列、堆栈、优先队列等处理方式
2016-12-28 16:55:27 669
原创 第四章 Balking
背景介绍:当现在不适合进行这个操作,或是没有必要进行这个操作时,就直接放弃进行这个操作。(此时也需要Guarded条件,但不需要wait/notify)
2016-12-27 17:15:50 299
原创 第三章 Guarded Suspension
背景介绍:当现在不适合马上执行某个操作,就要求想要执行该操作的线程等待,此时不会浪费虚拟机时间。(wait,notifyAll)四种等待情况1.guarded wait线程使用wait等待,等待被notify唤醒等待端: while(!ready) {wait()};唤醒端: ready=true; notify();[改线程得到对象锁,只要条件满足,才会通过wait释放锁]
2016-12-27 16:45:45 228
原创 Spring常用xml配置,如depends-on,init-method
depend-on用来表示一个Bean的实例化依靠另一个Bean先实例化。如果在一个bean A上定义了depend-on B那么就表示:A 实例化前先实例化 B。
2016-12-26 18:49:46 4703
原创 通过代理模式改变WebService的连接时间和接收超时时间
Example:public interface MemberAcctClient { MemberAcctDetail queryMemberAcct(String memberId, String productCode, boolean create);}public class MemberAcctClientImpl implements MemberAcctClient
2016-12-26 14:41:40 2100
原创 常用工具类(来自org.apache.commons)
1.BeanUtilsBeanUtils.copyProperties(fee, feePo, new String[]{"feeId", "productionCode", "feeType", "bizType"});除了后面几种元素,其他都复制
2016-12-26 14:28:32 312
原创 JdbcTemplate and TransactionTemplate
1.xml配置 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <bean name="transactionTempla
2016-12-26 14:01:11 839
原创 第二章 Immutable
背景介绍:Immutable类能保证实例状态绝不会改变,如String,可以利用该类省去使用共享互斥机制所浪费的时间public final class Person { private final String name; private final String address; public Person(String name, String addre
2016-12-21 20:52:36 215
原创 第一章 Single Threaded Execution
背景介绍:只允许一个线程执行public class Gate { private int counter = 0; private String name = "Nobody"; private String address = "Nowhere"; public synchronized void pass(String name, String addre
2016-12-21 20:30:13 257
原创 Spring使用技巧
1.注入List类型值protected List supportCodes; public void setSupportCodes(List supportCodes) { this.supportCodes = supportCodes; } public boolean support(String productCode) { if(null == supportCo
2016-12-20 10:09:21 461
原创 java路径读取方法
/* * File directory = new File("..");directory.getCanonicalPath(); //得到的是C:\directory.getAbsolutePath(); //得到的是C:\test\.. * */public class ReadPropertiesUtil { //String path = System.getPro
2016-12-09 17:51:33 241
java解析json依赖包
2015-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人