在Java中的同一个线程上运行的多个类

时间:2013-04-04 03:02:59

标签: java multithreading class sharing

我有一个类,我们称它为“Class1”,它实现了Runnable,并使用thread.start()启动一个名为“thread 1”的线程;

我有另一个类,它是Class1的子类,称为“Class2”。它包含main方法,并在类中运行另一个执行while循环的方法。然而,我注意到,在Class2中执行while循环的Thread不是“thread 1”,而是一个完全不同的线程。

有没有办法让Class2 while循环执行“thread 1”而不是自己的线程?如果我太模糊,请告诉我。 :)感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我在您的代码说明中看到了一些问题:

  • 您应该将主类分开,而不是在子类Class2中。称之为Main,不要混淆。
  • 您永远不应该在对象构造函数中启动一个线程。这是一个非常糟糕的模式,因为新线程在完全初始化之前可以访问this。我假设主线程正在调用new Class1()new Class2()。让主线程也启动线程。

    Thread thread1 = new Thread(new Class1());
    thread1.start();
    Thread thread2 = new Thread(new Class2());
    thread2.start();
    
  • Class1上运行的线程无法访问子类方法。如果你开始new Thread(new Class1()),线程甚至看不到Class2中的任何方法。

也许我不明白你在说什么。发布一些小代码示例,以便我们更好地解决您的问题。