-1

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

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

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

4

1 回答 1

1

我在您对代码的描述中看到了几个问题:

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

    Thread thread1 = new Thread(new Class1());
    thread1.start();
    Thread thread2 = new Thread(new Class2());
    thread2.start();
    
  • 正在运行的线程Class1无法访问子类方法。如果你启动new Thread(new Class1())线程甚至不会在Class2.

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

于 2013-04-04T03:18:29.120 回答