Java多线程编程的常见陷阱
1、在构造函数中启动线程我在很多代码中都看到这样的问题,在构造函数中启动一个线程,类似这样:1. public class A{2. public A(){3. this.x=1;4. this.y=2;5. this.thread=new MyThread();6. this.thread.start();7. }8. 9. } 这个会引起什么问题呢?如果有个类B继承了类A,依据java类初始化的顺序,A的构造函数一定会在B的构造函数调用前被调用,那么thread线程也将在B被完全初始化之前启动,当thread运行时使用到了类A中的某些变量,那么就可能使用的不是你预期中的值,因为在B的构造函数中你可能赋给这些变量新的值。也就是说此时将有两个线程在使用这些变量,而这些变量却没有同步。学习学习 学学一下,加油 学学一下,加油
学习学习 学习学习 顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶 赞一个 感谢楼主,努力学习java!
页:
[1]