`
gaoyuntao2005
  • 浏览: 311085 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
到过北京上地的都会知道,上地城铁往西走有一个很大的上地环岛,旁边是中关村发展大厦,第一次到北京的时候还给了小弟一番挺大的感触 经常从环岛这里经过,总会思考一个问题:北京地价这么贵,为什么在这里要建一个这么大的环岛呢?环岛到底有什么作用呢?解决交通拥塞?为行人方便?还是别的原因? 在百度百科可以搜到:是为了减少交通(和谐)事故的发生。 还有别的好处吗? 先看看普通的十字路口,要么横向通车,要么纵向通车,可以这样去理解,在两个道路交叉这块正方形是两个线程抢占的共享变量 A在运行时,需要锁住变量,然后走,B等待,B运行时也一样 在并发里面有一种方法:非阻塞算法 没了解过并发的同学可能不清楚非阻塞算法  ...
在看书的时候看到了一个观察死锁的工具TDA(Thread Dump Analysis) 看了半天,才知道这玩意儿需要由jvm产生一个Thread Dump 这个Thread Dump跟之前看到的Heap Dump也不是一回事 windows下是ctrl+break触发,unix下是ctrl+\或者kill -QUIT pid触发 默认是输出到System.out,当然,你可以重定向的 还有一个简单方便快捷的方法:Java VisualVM,并且Java VisualVM中还提供了TDA的插件下载 太深入的现在还没这水平,在之前的代码调试中用了一下 之前的代码中有这样一个错误  Java代码 ...
第二步,是实现一个线程池 因为之前看书的时候留了个心眼,看线程池相关的内容的时候特意没去研究JDK的实现 因为学跟做不是一码事,写一个线程池,算是给自己看完并发实践这书的一个练习吧 废话不多说,练习开始 首先,整理一下要实现的功能,或者说要注意的元素 1.实现Executor接口 2.实现一个等待队列(可否配置,优先级等) 3.是否需要预启动线程(可否配置) 4.执行开始前,结束后,需要留接口 5.Runable在任务中的存放形式 6.线程的启动,唤醒 7.线程池的关闭(优雅地结束),需要线程提供中断,线程池提供给使用者的提示,线程池返回取消线程等 8.线程队列(空闲队列?) 9.取空闲线程算法 ...
看了几个月的《Java Concurrency in Practice》到了今天终于算可以收尾了,之前留下的看不懂的代码,现在也基本明晰了一些 全书介绍了很多细节问题,很多注意的点,很多原则性问题,个人感觉,无论看几遍,都是值得的。但很多都是一些需要去记忆的东西,这个是需要经验的积累的。 真正想在思考上,在设计上得到更大的提高,看来必然是要落在了concurrent包的数个同步器的实现的分析和对AQS的理解上了 同步器是针对一些通用的场景设计的,由Doug Lea实现的,换句话来说,其实从同步器可以看出常用的一些需求,既然有了需求,又学会了工具(AQS框架)的使用,就可以按照自己的思维,试着重新 ...
1. 类 Executors 此类中提供的一些方法有: 1.1 public static ExecutorService newCachedThreadPool() 创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。 1.2 public static ExecutorService newFixedThreadPool(int nThreads) 创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。 1.3 public static ExecutorService newSingl ...
需求描述1:大家知道J2EE应用程序都可以用类型以下形式进行保护:  Xml代码   <login-config>  
TortoiseSVN的MSI安装包是使用Windows Installer XML (WIX)生成的。关于WIX的语法在这里不做解释,有兴趣的可以在网上搜搜,资料很多。今天我们将通过修改TortoiseSVN源代码中WIX的配置文件,来实现TortoiseSVN英文安装包和简体中文安装包的合并,并指定TortoiseSVN的默认语言为简体中文。 整体思路 分析TortoiseSVN中文包的安装过程,我们可以知道,安装TortoiseSVN中文包就是在TortoiseSVN安装目录的Languages文件夹下添加如下文件及文件夹, (图一) 并在注册表“HKEY_CURRENT_ ...
装编译器软件 A.  你需要 VS.NET2005 (或者至少 Visual C++ .NET 2005) 构建全部 TortoiseSVN     软件包。这是推荐选项,但不是免费的 (如果你需要构建 msi 安装包,确认已经安装 “Tools for Redistributing Applications”。   B.  如果没有 VS.NET,你可以下载免费的 Visual C++ 2005 Express。它只能构建     Subversion 库,SubWCRev,TortoiseBlame 和 TortoiseIDiff 程序。     - 安装 Visual C+ ...
 现在假设您要设计一个窗体登入Web程序,程序中有一个窗体登入页面,一个验证使用者名称与密码是否正确的LoginAction,以及一个登入成功页面,我们打算使用Spring的MVC框架来实现。  这个窗体登入程序最主要的当然就是 ...
藉由了解Spring的框架组成,我们可以了解框架之中的类与接口是如何彼此相互合作的,直接来看看几个核心类别与接口,在下图中也列出了几个我们常用到的界面与其具体实现类别: Spring MVC 框架的中心是DispatcherServlet,可以在图中 DispatcherServlet的周围看到,对于其相依赖的类别,DispatcherServlet并不直接依赖具体的实现,而是依赖于接口。 DispatcherServlet最上层父类别是HttpServlet,下来是HttpServletBean与FrameworkServlet, HttpServletBean处理Bean设定,Fra ...
  入门 19 - ModelAndView类别  ModelAndView类别就如其名称所示,是代表了MVC Web程序中Model与View的对象,不过它只是方便您一次返回这两个对象的holder,Model与View两者仍是分离的概念。  最简单的ModelAndView是持有View的名称返回,之后View名称被view resolver,也就是实作org.springframework.web.servlet.View接口的实例解析,例如 InternalResourceView或JstlView等等: ModelAndView(String viewName)  如果 ...
DispatcherServlet预设使用servlet名称加上"-servlet.xml"作为其定义档名称,定义档预设是放在WEB-INF下,您也可以自行指定定义文件名称与位置,例如: <servlet>     <servlet-name>hello</servlet-name>     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>     <init-param>     ...
进行这个程序之前,请您先完成入门 04 - 第一个Spring程序。  我们的第一个Spring MVC Web程序将使用Tomcat 5.0.28来示范,我们在webapps目录下建立一个springapp目录,这次为了方便,我们直接使用spring.jar,以及其相依的 commons-logging.jar,请将这两个jar放到 springapp/WEB-INF/lib下。  Spring MVC框架的中心是dispatcher:org.springframework.web.servlet.DispatcherServlet。 DispatcherServlet负责将Web请求分派 ...
撰写Bean定义档通常使用XML来撰写,XML阶层式的组织为各种元素与属性设定来说相当的方便,然而XML文件在阅读时总是要费点心力,尤其是在文件中充满了许多定义内容时。 对于程序来说,有一些选项在设定好后通常就不会去变更,而有一些选项可能得随时调整,这时候如果能提供一个更简洁的设定档,提供一些常用选项在其中随时更改,这样的程序在使用时会更有弹性。 我们可以实作org.springframework.beans.factory.config.BeanFactoryPostProcessor接口来提供这个功能: BeanFactoryPostProcessor.java public int ...
Spring中提供一些Aware相关接口,像是BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,实作这些 Aware接口的Bean在被初始之后,可以取得一些相对应的资源,例如实作BeanFactoryAware的Bean在初始后,Spring容器将会注入BeanFactory的实例,而实作ApplicationContextAware的Bean,在Bean被初始后,将会被注入 ApplicationContext的实例等等。 Bean取得BeanFactory、Applica ...
Global site tag (gtag.js) - Google Analytics