如果在MyThread类(继承Thread)中将变量声明为static,线程实例是不是也能共享资源了?

来源:2-4 应用揭秘

Joker125

2015-08-19 11:40

class MyThread extends Thread{

    static private int count = 5;

    void run(){

        ...

    }

}

MyThread mt1 = new MyThread();

MyThread mt2 = new MyThread();

MyThread mt3 = new MyThread();

mt1.start();

mt2.start();

mt3.start();


写回答 关注

3回答

  • z_xiaoye
    2016-08-19 15:15:03

    static表示这个类所有的对象都共享这个static

    z_xiao... 回复imooc_...

    只是不能直接调用而已,可以通过方法访问

    2017-02-05 18:40:36

    共 2 条回复 >

  • 连宏伟HW
    2016-06-08 23:37:47

    得到的结果是正确的 ,我也不知道原理是什么

    特南克斯

    如果不加 static,那么 new 出来三个对象就有三个 count 属性。每个线程有一个。但是如果是有 static 关键字。不管 new 多少个对象,不管是通过类调用还是对象调用。都只有一个 count 属性。所有的线程访问的也都是这同一个

    2018-11-04 18:10:31

    共 1 条回复 >

  • 去南极给企鹅洗热水澡
    2015-12-02 14:48:43

    代码运行是可以的啊,求原理是什么

    syh632...

    真的行吗?亲测不行呀!

    2016-03-13 19:10:07

    共 1 条回复 >

细说多线程之Thread VS Runnable

认识Thread和Runnable的区别,以及使用jstack生成线程快照

55327 学习 · 68 问题

查看课程

相似问题