排序:
默认
按更新时间
按访问量

《Java并发编程实践》笔记8——Fork/Join框架

《java并发编程实践》书中并没有介绍Fork/Join框架,该框架和并发编程关系密切,也是由本书作者之一Doug Lea在JDK1.7引入,因此作为最后一篇笔记简单介绍。 Fork/Join框架是JDK1.7提供的一个用于并行执行任务的框架,它把一个大任务分割为若干个小任务执行,最后将小任务的...

2015-07-02 10:57:43

阅读数:5034

评论数:0

《Java并发编程实践》笔记8——Fork/Join框架

《java并发编程实践》书中并没有介绍Fork/Join框架,该框架和并发编程关系密切,也是由本书作者之一Doug Lea在JDK1.7引入,因此作为最后一篇笔记简单介绍。 Fork/Join框架是JDK1.7提供的一个用于并行执行任务的框架,它把一个大任务分割为若干个小任务执行,最后将小任务的...

2015-07-02 10:56:30

阅读数:1821

评论数:0

《Java并发编程实践》笔记8——Fork/Join框架

《java并发编程实践》书中并没有介绍Fork/Join框架,该框架和并发编程关系密切,也是由本书作者之一Doug Lea在JDK1.7引入,因此作为最后一篇笔记简单介绍。 Fork/Join框架是JDK1.7提供的一个用于并行执行任务的框架,它把一个大任务分割为若干个小任务执行,最后将小任务的...

2015-07-02 10:54:07

阅读数:1645

评论数:0

《Java并发编程实践》笔记7——非阻塞同步算法

1.锁的劣势: 锁是实现线程同步最简单的方式,也是代价最高的方式,其有如下的缺点: (1).重量级: 现代JVM对非竞争的锁的获取和释放进行优化,可以根据系统中锁占用的历史数据决定使用自旋还是挂起等待,使得它非常高效。但是如果有多个线程同时请求锁,JVM就需要向操作系统寻求帮助,没有获取到锁...

2015-07-02 10:29:35

阅读数:2935

评论数:0

《Java并发编程实践》笔记7——非阻塞同步算法

1.锁的劣势: 锁是实现线程同步最简单的方式,也是代价最高的方式,其有如下的缺点: (1).重量级: 现代JVM对非竞争的锁的获取和释放进行优化,可以根据系统中锁占用的历史数据决定使用自旋还是挂起等待,使得它非常高效。但是如果有多个线程同时请求锁,JVM就需要向操作系统寻求帮助,没有获取到锁...

2015-07-02 10:28:13

阅读数:1886

评论数:1

《Java并发编程实践》笔记6——并发性调优

1.Amdahl定律: Amdahl(阿姆达尔)定律描述了在一个系统中,基于可并行化和串行化的组件各自所占的比重,程序通过获得额外的计算资源,理论上能够加速多少。若F是必须串行化执行的比重,那么在一个N处理器的机器中,通过Amdahl定律计算可以获得理论加速为: Speedup<=1/(...

2015-07-01 14:52:26

阅读数:3610

评论数:0

《Java并发编程实践》笔记5——线程活跃性问题及其解决方法

1.死锁的定义及发生条件: 死锁就像是两个人过独木桥,在桥中间碰到了,谁也不想让步,结果谁也无法通过。 线程A占有锁L时想要获得锁M,而线程B占有锁M并尝试获得锁L,两个线程将永远等待下去,这种情况称为死锁(deadlock),或致命拥抱(the deadly embrace)。 在并发程序...

2015-06-26 16:41:33

阅读数:3959

评论数:0

《Java并发编程实践》笔记4——线程池高级

1.估算线程池最优大小: Ncpu = CPU的数量 = Runtime.getRuntime().availableProcessors(); Ucpu = 目标CPU的使用率, 0  W/C = 等待时间与计算时间的比率; 为了保持处理器达到期望的使用率,最优的线程池大小等于: Nt...

2015-06-26 11:02:32

阅读数:2977

评论数:0

《Java并发编程实践》笔记3——线程池基础

1.JDK中的Executor框架是基于生产者-消费者模式的线程池,提交任务的线程是生产者,执行任务的线程是消费者。 Executor线程池可以用于异步任务执行,而且支持很多不同类型任务执行策略,同时为任务提交和任务执行之间的解耦提供了标准方法。 Executor线程池支持如下三种线程执行策略...

2015-06-25 10:36:39

阅读数:2526

评论数:0

《Java并发编程实践》笔记2——基础同步类

1.同步容器类复合操作容易出现的问题: JDK中同步容器类包括两部分: 早期JDK中的Vector和Hashtable; JDK1.2引入的同步包装类,即由Collections.synchronizedXxx工厂方法创建的容器类。 同步容器类都是线程安全的,它们提供的基本操作都是原子操作,但是对...

2015-06-23 17:52:49

阅读数:2432

评论数:0

《Java并发编程实践》笔记1——并发编程基础

1.线程安全定义: 当多个线程访问一个类时,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步及在调用方代码不必做其他的协调,这个类的行为仍然是正确的,那么这个类就被称之为是线程安全的。简言之对于线程安全类的实例进行顺序或并发的一系列操作,都不会导致实例处于无效状态。 只有对...

2015-06-23 15:13:13

阅读数:4340

评论数:0

《Java Performance》笔记4——JVM性能调优入门

1.应用程序的系统需求: 应用程序的系统需求是应用程序运行时某方面的要求,譬如吞吐量、响应时间、内存消耗量、可用性、可管理性等。JVM性能调优主要针对如下的系统需求: (1).可用性: 是对应用程序处于可操作、可使用状态的度量。可用性需求指的是当程序的某些组件发生故障或失效时,应用程序或应用...

2015-05-21 20:32:06

阅读数:3577

评论数:1

《Java Performance》笔记3——Java应用性能分析工具

1.Java应用性能分析的方法分析和内存分析: 方法分析:能够提供java应用程序中方法执行时间的信息,既包括java方法也包括本地方法。 内存分析:提供java应用程序内存使用信息,包括内存中已分配对象的数目、大小及活跃对象等信息,并附有对象分配时的栈追踪信息。 Oracle Solari...

2015-05-21 20:29:21

阅读数:4795

评论数:0

《Java Performance》笔记2——JVM命令行选项及垃圾收集日志解析

1.JVM命令行选项: HotSpot VM运行时系统解析命令行选项,并据此配置HotSpot VM, HotSpot的命令行选项主要有3类: A. 标准选项: JVM规范要求所有的JVM都必须实现的选项,它们在发行版之间保持稳定,但也可能在后续的发行版中被废除。如:-client,-se...

2015-05-21 20:24:34

阅读数:2344

评论数:0

《Java Performance》笔记1——性能分析基础

1.性能分析两种方法: (1).自顶向下: 应用开发人员通过着眼于软件栈顶层的应用,从上往下寻找性能优化的机会。 (2).自底向上: 性能专家从软件栈底层的CPU统计数据(例如CPU高速缓存未命中率、CPU指令效率)开始,逐渐上升到应用自身的结构或应用常见的使用方式。 2.CPU使用率:...

2015-05-21 20:16:12

阅读数:2938

评论数:0

《java解惑》读书笔记8——更多类谜题

1.变量隐藏: 问题: 猜猜下面的小程序打印结果应该是什么: class Base{ public String className = "Base"; } class Derived extends Base{ private String classNam...

2014-03-04 17:13:33

阅读数:2460

评论数:0

《java解惑》读书笔记7——库谜题

1.不可变类: 问题: 下面的程序计算5000+50000+500000值,代码如下: import java.math.BigInteger; public class Test{ public static void main(String[] args){ BigI...

2014-02-24 16:06:10

阅读数:2384

评论数:0

《java解惑》读书笔记6——类谜题

1.方法重载: 问题: 下面的程序演示方法重载,代码如下: public class Test{ public static void main(String[] args) { new Test(null); } private Test(Ob...

2014-02-19 13:56:28

阅读数:2629

评论数:0

《java解惑》读书笔记5——异常谜题

1.finally语句块中的return: 问题: 下面的小程序运行结果是什么: public class Test { public static void main(String[] args) { System.out.println(decision()); ...

2014-01-24 15:56:17

阅读数:2539

评论数:0

《java解惑》读书笔记4——循环谜题

1.byte数值比较: 问题: 下面的程序循环遍历byte数值,以查找某个特定值,代码如下: public class Test { public static void main(String[] args) { for(byte b = Byte.MIN_VALU...

2014-01-17 17:21:37

阅读数:2677

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭