#30天专注成长计划#day14java 并发多线程不变模式

一.不变模式

1.什么是不变模式?

一个类的内部状态创建后,在整个生命期间都不会发生变化时,就是不变类 ,不变并不代表是只读的,不变模式有一个特点,就是不需要同步。

怎么理解不变与只读呢?就好比我们的出生年月是不变的,我们的你年龄是只读的,随着时间的增加,一个人的年龄会随之增加,但是一个他的出生年月是不会再变的。

#30天专注成长计划#day14java 并发多线程不变模式_第1张图片

不变模式在java 中最著名的应用就是String 类,更多信息请google.

他的类的修饰符使用的是final  就是这个类不需要被继承。

那么就有同学问了我定义一个string 的变量,为什么可以replace,或者substring,或者重新赋值一个新的值呢?

例如 :

Stringb="move";

b=b.substring(0, 2);

System.err.println(b);//mo

输出的变量b 是 mo,而并不是move

2.疑问:不是不变的吗?为什么现在又变了呢?

实际上调用substring 的方法生成一个新的变量,可以理解为c, 然后又将c 赋值给了b。

这里再留一个问题?

输出的是什么结果?为什么?

二.future 模式

他是一个使用非常广泛应用的并发模式,他的核心思想是异步调用

今明天晚上继续futrue 模式

你可能感兴趣的:(#30天专注成长计划#day14java 并发多线程不变模式)