继承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 接口的区别