我有一个类,让我们称之为“Class1”,它实现了Runnable,并使用thread.start()启动一个名为“thread 1”的线程;
我有另一个类,它是Class1的一个子类,叫做“Class2”。它包含主方法,并在执行while循环的类中运行另一个方法。然而,我注意到,在Class2中执行while循环的线程不是“线程1”,而是一个完全不同的线程。
有没有办法让Class2 while循环在“线程1”上执行,而不是在它自己的线程上执行?如果我说得太含糊,请告诉我谢谢你的帮助。
我在您对代码的描述中看到了几个问题:
Class2
Main
永远不应该在对象构造函数中启动线程。这是一个非常糟糕的模式,因为 this 可以在新线程完全初始化之前由其访问。我想主线程正在调用 new Class1() 和 new Class2() 。让主线程也启动线程。
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()) 线程在中甚至看不到任何方法 类别2 .
Class1
new Thread(new Class1())
类别2
也许我不明白你在说什么。发布一些小代码示例,以便我们能够更好地解决您的问题。