对于下面的程序:
public class MyThread extends Thread{ private Object obj; ...... }
请问,这个MyThread里面的成员变量,是不是线程安全的?
因为,MyThread继承了Thread,其使用方式为:new MyThread().start();所以,这就意味着,每次都是new了新对象,那么,他里面的各个成员变量就是这个对象自己拥有的,所以,是安全的。我这样理解有问题吗?
就单纯你说的这个情况,肯定是线程安全的,因为只有你自己线程使用.
主要看你有没有访问某一个公共资源,lz这个问题,没有涉及到访问某个公共资源,所以谈不上安全不安全。
谢邀!在限定使用方式为new MyThread().start()的情况下是线程安全的。
new MyThread().start()
线程安全
虽然你声明的private但还是可以在另一个线程里读取该变量,在没有加同步锁的情况下就是线程不安全的。
题主想的这种线程安全的变量应该是在run方法里面声明的,这样的话对象就存在于线程工作内存里独享。