呃 什么是多线程的问题的通电,多线程虽然效率高上去了很多,可以对cpu进行充分的压榨,但是多线程的一个比较大的问题就是关于可变共享变量的修改问题, 原因就是在于我们的设计流程里有多个线程对共享变量的修改操作,所以这个时候就得用锁保证安全性,而用锁又降低了多线程的效率,所以我们大概有三种方式把锁消除:cas, 写时复制,设计流程的时候尽量避免多线程访问共享变量,即可以把共享变量设计为不可变,比如final修饰
设计不可变变量的方法 final修饰属性 private修饰熟悉, 且不提供set方法 示例
public class ShareImmutable {
private final String name;
public ShareImmutable(String name) {
this.name = name;
}
}
jdk中的示例
String
public final class String
implements java.io.Serializable, Comparable, CharSequence {
private final char value[];
private int hash; // Default to 0
private static final long serialVersionUID = -6849794470754667710L;
private static final ObjectStreamField[] serialPersistentFields =
new ObjectStreamField[0];



