`
C_J
  • 浏览: 124998 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
    在多线程设计中,我猜常常会遇到线程间相互等待以及某个线程等待1个或多个线程的场景,比如多线程精密计算和大量数据处理,这里写下我自己的体会和理解。         我想应该有很多办法,如果是简单的1:1关系,那么可以wait()和notify()解决,就像一把锁和一把钥匙;如果是1:N关系,这个1就需要关心N的所有状态了,最笨的办法是1可以去查看N当前的状态,轮询询问工作是否做完。而好点的办法是N做完后主动告诉1,然后N就会有2种选择,要么听从1的命令,要么继续干自己其他的活。       用传统的方法我想应该是都能实现的,而JDK1.5提供了CyclicBarrier与Coun ...
题记:     人越来越懒了,最近看代码的速度越来越慢了,加速。 数据源(datasource包&jdbc包)      在datasource包中ibatis提供三类对外数据源factory,分别为:SimpleDataSourceFactory、JndiDataSourceFactory、DbcpDataSourceFactory。   SimpleDataSourceFactory SimpleDataSourceFactory对外提供简单数据源,接口定义如下:   public class SimpleDataSourceFactory implement ...
电子版在http://caibinbupt.iteye.com/blog/418846下载 Getting started with hadoop core     Applications frequently require more resources than are available on an inexpensive machine. Many organizations find themselves with business processes that no longer fit ona single cost-effective computer.       A ...
    第一次接触IOC是还在大学的时候,那时候还什么都不懂,不懂OO,不懂设计模式,只知道要用什么就new什么,也没人管我们,老师更不管,那时老师还没先进到工厂模式上,如果说new的方式是原始社会的话,那么我很不幸的 ...
题记:      看到摊子里gogole_09同学分享了他阿里的面筋,其中有个问题提到:线程池的中断策略有哪些?各有什么特点?想想自己也看过Common的对象池源码和用过Sun的ThreadPoolExecutor线程池,却没注意到“中断策略”,这是一个所有缓存池需要考虑的异常问题。   Common Pool中断策略     竟然是中断策略,直接看Common Pool中的borrowObject,从池中取对象,当没有可用的对象的时候的策略。         **StackObjectPool(以Stack为存储结构的Pool)     public synchron ...
题记: 前几天讨论到WeakHashMap(这个是个弱引用的Map,用于缓存,弱引用的特点是随时被GC回收),WHM在每次put()会间接地调用expungeStaleEntries()来从去除实体。今天看到Hudon的WeakLogHandler的应用就怀着学习的目的来看看WeakRefence。(软引用在内存不足的时候被GC回收,弱引用可能在每次都被GC回收,她们的机制或原理是什么呢?我总是很好奇)     分析: 粗略看了下设计,有很多疑点不懂: 1、pending对象的用处? 2、ReferenceHandler线程什么时候notify呢? 3、到底哪些对象会被GC回收呢 ...
Martin Fowler于2003年出版的,有些观点有些陈旧了,可取其精华,去其糟粕。 前言:     作者介绍了重构的基本概念,以及回答了what when who的问题。 可能需要重构的方面:     1、Duplicate Code(重复代码)     2、Long Method(长 ...
    说说自己对注入的一些体会吧。     什么叫SQL注入?顾名思义,就是依赖于SQL语句的一种攻击方式,主要采用特殊字符串来处理的SQL漏洞。     这个SQL依赖注入已经是很老的漏洞了,现在基本上DAO层的编写已经很少使用 ...
  题记      前几天有人问我一个问题:“你一般用什么Collection?”,严格地讲应该问:“你一般用什么Collection 和 Map?”     在应用过程中,这些数据结构非常常用,自己来重温下SUN写的数据结构吧!  接口关系       0上层接口为:Collection & Map      Collection:Set、List、Queue;                Set:HashSet、TreeSet               List:ArrayList、Vector、LinkedList、          Q ...
空白~~~~~~~~~~~~~~~~~~~~~算了,帖子被隐藏了。
    今天偶然在Gao ang同学的博客上看到OGSA-DAI项目,感觉焕然一新,个人觉得是配合未来WEB项目高并发分布式数据库的DAO层解决方案之一。       OGSA-DAI的思想是:“应用整串SQL语句推送给后端的DAO,DAO根据配置的数据源把SQL拆分成为针对不同数据源的子查询,子查询通过DAI数据服务获取查询结果,并对不同数据源返回的结果进行组装,并返回给上层应用”。        流程如下:         这个项目不得不触发一些新的想法,毅然记录了下来.... 提出问题,这样是不是可以替换目前的容灾模式呢??   后来回头想想,虽然应用可以分布式访问 ...
Accessplan包 UML: 接口和实现类的组织结构如下(很典型的3层,1层Interface,2层abstract,3层实现class:   Accessplan是用来保存JavaBean对象的Method[]、成员变量类型Class[]的工具类。 protected Class clazz; protected String[] propertyNames; protected ClassInfo info;   Accessplan对外只提供个Factory,这种“封闭”设计可以借鉴: 对外接口调用如下: parameterPlan = Acc ...
异常谜题 循环谜题 表达式谜题 字符谜题 类谜题——这个比较熟悉 库谜题—— 1,令人疲惫不堪的测验 本谜题将测试你对递归的了解程度。下面的程序将做些什么呢?public class Workout {public static void main(String[] args) {workHard();System.out.println("It's nap time.");}private static void workHard() {try {workHard();} finally {workHard();}}}要不是有try-final ...
  多线程设计模式有很多模式,我用简约的几行伪代码表示吧,如下:   模式1:简单的synchronized+wait/notify 最简单的wait/notify的应用,get的时候,如果没有数据就锁住对象,使当前线程等待,当有数据put的时候,调用notify来唤醒等待的线程,释放对象。如下: private queue; public synchronized Object get(){ while(queue.size<=0){wait()} return queue.remove(); } public synchronized void p ...
在JAVA中类加载的层次关系就不说了。    实现hotswap有几个基础要知道的:      1,每个类classLoader有自己的名字空间,对于同一个类classLoader实例来说,名字相同的类只能存在一个,并且仅加载一次。      2,在进行类加载时,首先会自底向上挨个检查是否已经加载了指定类,如果已经加载则直接返回该类的引用。如果到最高层也没有加载过指定类,那么会自顶向下挨个尝试加载,直到用户自定义类加载器,如果还不能成功,就会抛出异常。      3,即使是同一个类文件,如果是由不同的类classLoader实例加载的,那么它们的类型是不相同的。      4, ...
Global site tag (gtag.js) - Google Analytics