我有一个类,我们称它为“Class1”,它实现了Runnable,并使用thread.start()启动一个名为“thread 1”的线程;
我有另一个类,它是Class1的子类,称为“Class2”。它包含main方法,并在类中运行另一个执行while循环的方法。然而,我注意到,在Class2中执行while循环的Thread不是“thread 1”,而是一个完全不同的线程。
有没有办法让Class2 while循环执行“thread 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
中的任何方法。
也许我不明白你在说什么。发布一些小代码示例,以便我们更好地解决您的问题。