君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 107 下一页

2013年9月15日 #

摘要: 目录(?)[-]Future PatternTwo-Phase Termination PatternThread-Specific Storage PatternActive Object PatternFuture Pattern 在Thread-Per-Message Pattern中,我们研究过“收到每个请求建立一个线程”的做法,但这样的请求是不要求有返回值的。如果当需要返回值,但由于后台处理需要很久,返回值 不能马上获取,那么就可以使用 Future Pattern。Future Pattern同样会每个请求建立一个线程处理,同时会马上返回一个对象,但该对象并不是真正的返回值,真.. 阅读全文
posted @ 2013-09-15 01:16 刺猬的温驯 阅读(550) 评论(0) 推荐(1)

摘要: 目录(?)[-]Read-Wirte Lock PatternThread-Per-Message PatternWorker Thread PatternRead-Wirte Lock Pattern Read-Write Lock Pattern 将读取和写入分开来处理。在读取数据之前,必... 阅读全文
posted @ 2013-09-15 01:13 刺猬的温驯 阅读(556) 评论(0) 推荐(0)

摘要: 目录(?)[-]Guarded Suspension PatternBalking Pattern Producer-Consumer Pattern Guarded Suspension Pattern 该模式描述的是当一个线程在执行某个操作时,但由于其他资源还没有准备好,需要等待,那么就等待资源准备好才开始自己的操作。我们直接看代码例子:[java] view plaincopypublicclassRequest{privateStringname;publicRequest(Stringname){this.name=name;}publicStringgetName(){retur. 阅读全文
posted @ 2013-09-15 01:06 刺猬的温驯 阅读(631) 评论(0) 推荐(0)

摘要: 目录(?)[-]Java多线程基础Thread类的run方法和start方法线程的启动线程的暂时停在线程的共享互斥线程的协调Single Threaded Execution PatternJava多线程基础Thread类的run方法和start方法 Java语言写成的程序一定是先从主线程开始操作,所以必须在程序的某个位置启动新的线程,才能算是真正的多线程程序。start()方法是 Thread类的方法,调用start()方法,就会启动新的线程。请注意,被调用来启动线程的是start()方法,而非run()方法。调用 start()方法之后,Java执行处理系统会在背后启动新的线程。再由这.. 阅读全文
posted @ 2013-09-15 01:00 刺猬的温驯 阅读(1697) 评论(0) 推荐(1)

2013年9月14日 #

摘要: 注:本文的主要参考资料为结城浩所著《JAVA多线程设计模式》。单线程执行模式(Single Threaded Execution Pattern)是最简单的多线程设计模式,几乎所有其他的模式都在不同程度上应用了该模式。先看一个程序,通过它可以体验多线程程序无法正确执行的场景,这里所写的是个关于“只能单个通过的门”的程序:有三个人频繁地、反复地经过一个只能容许单人经过的门,当人通过门的时候,这个程序显示出通过人的“姓名”与“出生地”,其代码如下:Java代码publicclassGate{privateintcounter=0;privateStringname="Nobody&quo 阅读全文
posted @ 2013-09-14 22:26 刺猬的温驯 阅读(862) 评论(0) 推荐(1)

摘要: 这个专题主要讨论并发编程的问题,所有的讨论都是基于JAVA语言的(因其独特的内存模型以及原生对多线程的支持能力),不过本文传达的是一种分析的思路,任何有经验的朋友都能很轻松地将其扩展到任何一门语言。注:本文的主要参考资料为结城浩所著《JAVA多线程设计模式》。线程的英文名Thread,原意指“细丝”。在多线程程序中,若要追踪各个线程的轨迹,就会派生出一系列错综复杂的乱线团。假设在运行过程中,如果有人问到“请问现在执行到代码的哪一部分了?”,你需要多个手指头才能指出正确的地方。当应用程序的规模、复杂程度达到一定程度时,并发设计是一个必将考虑到的问题,以下是一些常见的应用:GUI:以word为例, 阅读全文
posted @ 2013-09-14 22:21 刺猬的温驯 阅读(3685) 评论(0) 推荐(1)

2013年8月27日 #

摘要: 缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。基本信息 缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓存数据的生命周期。 Hibernate的缓存包括Session的缓存和SessionFactory的缓存,其中SessionFactory的缓存又可以分为两类:内置缓存和外置缓存。Sessi.. 阅读全文
posted @ 2013-08-27 00:50 刺猬的温驯 阅读(468) 评论(0) 推荐(0)

2013年8月23日 #

摘要: 分类体系分类:给定一个对象,从一个事先定义好的分类体系中挑出一个或多个最适合该对象的类别。文本分类(TC, Text Categorization):在给定的分类体系下,根据文本内容自动的确定文本关联的类别。从数学角度看,文本分类是一个映射的过程,它将未标明类别的文本映射到已有的类别中,该映射可以是... 阅读全文
posted @ 2013-08-23 01:06 刺猬的温驯 阅读(2859) 评论(0) 推荐(0)

2013年8月22日 #

摘要: 转载自http://ljbal.iteye.com/blog/497314前段时间在公司做了一个项目,项目用了spring框架实现,WEB容器是Tomct 5,虽然说把项目做完了,但是一直对spring的IoC容器在web容器如何启动和起作用的并不清楚。所以就抽时间看一下spring的源代码,借此了解它的原理。 我们知道,对于使用Spring的web应用,无须手动创建Spring容器,而是通过配置文件,声明式的创建Spring容器。因此在Web应用中创建Spring容器有如下两种方式: 1. 直接在web.xml文件中配置创建Spring容器。2. 利用第三方MVC框架的扩展点,创建Sprin 阅读全文
posted @ 2013-08-22 00:03 刺猬的温驯 阅读(2981) 评论(2) 推荐(1)

2013年8月11日 #

摘要: 总觉得,Digester不仅仅能作配置文件解析,而且可以作得更多。配置属性 Digester用来解析应用系统的配置文件,其本身也有很可配置的属性。属性描述classLoader指定类装载器(class loader)。ObjectCreateRule 和 FactoryCreateRule两个规则中,需要动态加载一些类(如那些盛放XML解析出来的数据的javaBean等),装载器可以在次指定。如果不指定,对这此类的加载将会利用线程上下文中的加载器(当useContextClassLoader值为真时)或利用加载Digester的那个加载器。errorHandler指定 SAX ErrorHa. 阅读全文
posted @ 2013-08-11 18:31 刺猬的温驯 阅读(798) 评论(0) 推荐(0)

上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 107 下一页