Java中在同一线程上运行的多个类
我有一个类,我们称之为“Class1”,它实现了Runnable,并使用thread.start()启动了一个名为“thread1”的线程 我有另一个类,它是Class1的一个子类,叫做“Class2”。它包含main方法,并在类中运行另一个方法,该方法执行while循环。然而,我注意到,在类2中执行while循环的线程不是“线程1”,而是一个完全不同的线程Java中在同一线程上运行的多个类,java,multithreading,class,sharing,Java,Multithreading,Class,Sharing,我有一个类,我们称之为“Class1”,它实现了Runnable,并使用thread.start()启动了一个名为“thread1”的线程 我有另一个类,它是Class1的一个子类,叫做“Class2”。它包含main方法,并在类中运行另一个方法,该方法执行while循环。然而,我注意到,在类2中执行while循环的线程不是“线程1”,而是一个完全不同的线程 有没有办法让类2 while循环在“线程1”上执行,而不是在它自己的线程上执行?如果我太含糊,请告诉我。:)谢谢您的帮助。在您对代码的描述
有没有办法让类2 while循环在“线程1”上执行,而不是在它自己的线程上执行?如果我太含糊,请告诉我。:)谢谢您的帮助。在您对代码的描述中,我发现了几个问题:
- 您应该分离出主类,而不是将其放在子类
中。称之为Class2
,以免混淆Main
- 永远不要在对象构造函数中启动线程。这是一种非常糟糕的模式,因为新线程在完全初始化之前可以访问此。我假设主线程正在调用
和newclass1()
。让主线程也启动线程newclass2()
Thread thread1 = new Thread(new Class1()); thread1.start(); Thread thread2 = new Thread(new Class2()); thread2.start();
- 在
上运行的线程无法访问子类方法。如果启动Class1
该线程甚至在新线程(new Class1())
中看不到任何方法Class2
也许我不明白你在说什么。发布一些小的代码示例,以便我们更好地解决您的问题。一个线程一次可以运行一个方法。如果您希望
while
循环在可运行线程中运行,请让该线程使用while
循环调用该方法。请发布一些代码,也许我们可以为您提供更好的解决方案发布一些代码,否则您的问题可能会被解决。很难理解你在说什么。