在类内部扩展线程。在哪里放置另一个类?

时间:2014-07-24 22:01:39

标签: java multithreading

我有两节课, Class_A是接受数据包。 (多线程) Class_B用于解析每次收到的数据包。 我想要做的是让Class_A在有新的数据包时创建新的线程。 每个Class_A线程都会创建Class_B实例来解析数据包。

    public class Class_A extends Thread{

      public Class_A(){

      }

      public void run() {
        Class_B B=new ClassB();
        B.xxxxxxx;
      }
    }

我想知道在构造函数中创建B实例是否存在任何差异或更好? 或者在Class_A的开头?

谢谢

1 个答案:

答案 0 :(得分:3)

如果ClassB总是用于相同目的而不修改其属性,则将其作为A的属性并将其初始化放在ClassA的构造函数上,以避免在不需要实例化类的情况下(内存和性能损失) 。请记住,不再使用的每个类的新实例都会让GC收集更多垃圾。

另外,请勿使用

extends Thread

更好的做法是使用

implements Runnable

这样你的层次结构就会有更多的自由(我建议你阅读Effective Java以获得像这样的快速提示。)