基础知识
下面是一些关于 java 线程的基础知识博客。
需要补充知识的可以浏览一下,已经熟悉的可以直接跳过。
多线程代码的评定标准
对于代码的评定不应该停留于好坏,而应该指出好在哪里?或者坏在哪里?
下面简单地谈一下 Doug Lea 的评价标准。
如果你看过 JDK 源码,应该见过这个名字。
安全性
安全性,即不损坏对象。
此处的损坏是指对象的状态和设计者的意图不一致。
比如银行账户信息,如果设计者不希望余额为负数,但是却出现了负数,这就可以理解为损坏。
可以被多线程调用,也保证安全性的类,称之为线程安全。
比如 java.util.Vector
。
生存性
生存性,必要的处理能够被执行。
最典型的例子就是死锁,后面的文章会讲解。
可复用性
可复用性,类可以被重复使用。
JDK 中 java.util.concurrent
就是提供了很多可复用性高的类。
性能
性能,可以快速大批量的执行处理。
下面简单列举几个重要的因素:
- 吞吐量
单位时间内完成的处理数量。 - 响应性
从发出请求到收到请求的时间。 - 容量
可同时进行的处理数量。
总结
- 安全性和生存性:必要条件
- 可复用性和性能:提高质量