问题描述
- java多线程并发问题求解
-
父类中定义了几个成员变量String类型 a,b,c,这个父类被几个子类共同继承了,
各个子类中在构造器内初始化了a,b,c变量,问多线程调用每一个子类时会
产生并发问题吗?
父类:
解决方案
首先,需要看你的这类是如何设计的,如果只是提供 了构造函数来初始化这几个成员变量,而没有提供外界修改方法如setA...等方法的话,那么你这个类就是线程安全的,因为对象的信息不可能被外界改变。
如果提供了修改方法,那么对于同一个对象,置于多线程访问条件下,就有可能出现数据不一致性问题。
其次,因为对象是存储在运行时数据区的堆中,是线程共享的,所以同一个对象如果可能同时被多个线程读、写操作时,就存在安全性问题。
时间: 2023-09-25