实验证明:final修饰对象的情况下结合多线程,证明:final修饰的对象属性可以改变;final修饰的对象属性可以在多线程中改变;线程中可以包含线程。
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;import Pay;//一个实体类,含有set和get方法,下面只用到了属性 String pay;
public class test {
private final static Executor executor = Executors.newCachedThreadPool();//线程声明
public static void main(String[] args) {
final Pay pa=new Pay();
System.out.println(pa.getNo()+";第一次");
pa.setPay("1");
System.out.println(pa.getPay()+";第二次");
//外部的线程开始
executor.execute(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try{
pa.setPay("2");
System.out.println(pa.getPay()+";第三次");
//内部嵌套的第一个线程开始
executor.execute(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try{
pa.setPay("3");
System.out.println(pa.getPay()+";第4次");
}catch(Exception e){
}
}
});
//内部嵌套的第一个线程结束
//内部嵌套的第二个线程开始
executor.execute(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try{
pa.setPay("5");
System.out.println(pa.getPay()+";第5次");
}catch(Exception e){
}
}
});
//内部嵌套的第二个线程结束
}catch(Exception e){
}
}
});
//外部的线程结束
}
}