关于java

来源:互联网 发布:手游淘宝交易平台官网 编辑:程序博客网 时间:2024/04/27 14:38

1、摘录一段话(来自java编程思想)

要修正死锁问题,你必须明白,当以下四个条件同时满足时,就会发生死锁:

1)互斥条件。任务使用的资源中至少有一个是不能共享的。这里,一根Chopstick一次就只能被一个Philosopher使用。

2)至少有一个任务他必须持有一个资源且正在等待获取一个当前被别的任务持有的资源。也就是说,要发生死锁,Philosopher必须拿着一根Chopstick并且等待另一根。

3)资源不能被任务抢占,任务必须把资源释放当作不同事件。Philosopher很有礼貌,他们不会从其他Philosopher那里抢Chopstick。

4)必须有循环等待,这时,一个任务等待其他任务所持有的资源,后者又在等待另一个任务所持有的资源,这样一直下去,直到有一个任务在等待第一个任务持有的资源,使得

大家都被锁住。因为每个Philosopher都试图先得到右边的Chopstick,然后得到左边的Chopstick,所以发生了循环等待。


要发生死锁的话,所有这些条件必须全部满足;所以要防止死锁的话,只需要破坏其中一个即可。在程序中,最容易的是破坏最后一个条件,把最后一个Philosopher的拿筷子顺序改成先拿左边的筷子,后拿右边的筷子。就可以防止循环等待。当然,还有其他方法,5双筷子可以让两个哲学家同时吃饭。


2、spring框架真心好用,真心牛

spring特性:  ◆方便解耦,简化开发   通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。       ◆AOP编程的支持   通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。       ◆声明式事务的支持   在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。       ◆方便程序的测试   可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。   ◆方便集成各种优秀框架   Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hession、Quartz)等的直接支持。   ◆降低Java EE API的使用难度   Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。   ◆Java 源码是经典学习范例   Spring的源码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。


3、介绍java NIO

在这里

0 0