继承Thread类和实现Runnable接口创建的线程对于实例变量和类变量的共享

Posted xm970829

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了继承Thread类和实现Runnable接口创建的线程对于实例变量和类变量的共享相关的知识,希望对你有一定的参考价值。

1:继承Thread类的创建线程
(1)实例变量
技术图片
运行结果:
技术图片

从上图可以看出,A线程和B线程各执行5次,得出:由继承Thread类创建的线程,实例变量并不共享。
(2)类变量(静态变量)
技术图片
运行结果:
技术图片
从上图可以看出,A和B总共执行了5次,得出:由继承Thread类创建的线程,类变量共享。

2:实现Runnable接口的创建线程
(1)实例变量
技术图片
执行结果:
技术图片
从上图我们可以看到,三个线程总共执行了10次,得出:由实现Runnable接口创建的线程,实例变量是共享的(不过需要注意的是,得是同一个对象创建的不同线程)
(2)类变量
技术图片
执行结果:
技术图片

由上图可以看出,所有线程也是只是执行了10次,得出:由实现Runnable接口创建的线程,类变量是共享的。

最后!!!
我们看看实现Runable接口创建的线程,不同对象所创建的线程,实例变量是否共享
技术图片
执行结果(3个线程各执行10次,截图不全):
技术图片
由结果可知,即使是实现Runnable接口所创建的线程,也不一定是实例变量共享的,要看线程是不是同一对象创建的。

以上是关于继承Thread类和实现Runnable接口创建的线程对于实例变量和类变量的共享的主要内容,如果未能解决你的问题,请参考以下文章

多线程——继承Thread 类和实现Runnable 接口的区别

多线程——继承Thread 类和实现Runnable 接口的区别

几种创建线程方式Thread类和Runnable接口

Java中的线程

多线程学习记录一继承Thread类和实现Runnable接口Callable接口的区别

Java线程演示样例 - 继承Thread类和实现Runnable接口