- 博客(5)
- 资源 (42)
- 收藏
- 关注
原创 《Java并发编程实践》笔记5——线程活跃性问题及其解决方法
1.死锁的定义及发生条件: 死锁就像是两个人过独木桥,在桥中间碰到了,谁也不想让步,结果谁也无法通过。 线程A占有锁L时想要获得锁M,而线程B占有锁M并尝试获得锁L,两个线程将永远等待下去,这种情况称为死锁(deadlock),或致命拥抱(the deadly embrace)。 在并发程序设计中,死锁 (deadlock) 是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避
2015-06-26 16:41:33 4943
原创 《Java并发编程实践》笔记4——线程池高级
1.估算线程池最优大小: Ncpu = CPU的数量 = Runtime.getRuntime().availableProcessors(); Ucpu = 目标CPU的使用率, 0 W/C = 等待时间与计算时间的比率; 为了保持处理器达到期望的使用率,最优的线程池大小等于: Nthreads = Ncpu * Ucpu * (1+ W/C); 2.配置ThreadPoolExe
2015-06-26 11:02:32 3893
原创 《Java并发编程实践》笔记3——线程池基础
1.JDK中的Executor框架是基于生产者-消费者模式的线程池,提交任务的线程是生产者,执行任务的线程是消费者。 Executor线程池可以用于异步任务执行,而且支持很多不同类型任务执行策略,同时为任务提交和任务执行之间的解耦提供了标准方法。 Executor线程池支持如下三种线程执行策略: (1).顺序执行: 类似于单线程顺序执行任务,优点是实现简单;缺点是扩展性受限,执行效率低下,
2015-06-25 10:36:39 3229
原创 《Java并发编程实践》笔记2——基础同步类
1.同步容器类复合操作容易出现的问题: JDK中同步容器类包括两部分: 早期JDK中的Vector和Hashtable; JDK1.2引入的同步包装类,即由Collections.synchronizedXxx工厂方法创建的容器类。 同步容器类都是线程安全的,它们提供的基本操作都是原子操作,但是对于诸如迭代、导航和缺少即加入的条件运算等复合操作来说,通常需要使用额外的客户端加锁进行保护来确
2015-06-23 17:52:49 3061
原创 《Java并发编程实践》笔记1——并发编程基础
1.线程安全定义: 当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步及在调用方代码不必做其他的协调,这个类的行为仍然是正确的,那么这个类就被称之为是线程安全的。简言之对于线程安全类的实例进行顺序或并发的一系列操作,都不会导致实例处于无效状态。 只有对象状态可变,且存在对象共享,才需要考虑线程安全。 可以通过下面的方法来确保线程安全: (1).
2015-06-23 15:13:13 5343
XFire与Spring框架集成,实现WebService
2011-03-04
基于Annotation写的简单数据校验框架
2010-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人