从线程对象继承的Java子对象应该调用主(ui)线程中父对象的methodexecution

从线程对象继承的Java子对象应该调用主(ui)线程中父对象的methodexecution,java,multithreading,oop,events,synchronization,Java,Multithreading,Oop,Events,Synchronization,又是我,我一直在努力将一些代码从c移植到java。 正如我现在读到的,在java中使用多线程有两种主要方法。 创建一个从线程继承的类,或者创建一个实现Runnable的类。 我知道,还有匿名的方法 正如我现在痛苦地认识到的那样,将多线程从c移植到java可以让我重构一些我希望尽量避免的代码 所以,让我说,我有一个从线程继承的类CLQueueWorker。我的父对象\u oParentMAIN将保留此对象的引用 它的run方法应该执行一些异步操作,这些操作到目前为止都是在_oParentMAIN中

又是我,我一直在努力将一些代码从c移植到java。 正如我现在读到的,在java中使用多线程有两种主要方法。 创建一个从线程继承的类,或者创建一个实现Runnable的类。 我知道,还有匿名的方法

正如我现在痛苦地认识到的那样,将多线程从c移植到java可以让我重构一些我希望尽量避免的代码

所以,让我说,我有一个从线程继承的类CLQueueWorker。我的父对象\u oParentMAIN将保留此对象的引用

它的run方法应该执行一些异步操作,这些操作到目前为止都是在_oParentMAIN中实现的:

我的想法是在CLQueueWorker中创建一个静态变量,并使用它来代替它 把它放在主管道里

2在ui线程->不知道如何重构时调用方法调用,因为直到现在 此方法是_oParentMAIN的成员,我将无法调用它对的调用 ui线程,因为CLQueueWorker不知道此成员

3在ui线程上调用另一个方法,该方法负责ui元素。->这里我的问题也将与第2点相同

因此,我需要一些提示如何以适当的方式重新设计它。 让我说,是否有可能,真正产生另一个线程的CLQueueWorker调用方法/向/of _oParentMAIN抛出事件,并将执行传递回主线程


我希望,我能描述得足够清楚。

我希望,我能描述得足够清楚。否:不要扩展线程,而是使用Runnable,因为Thx,我已经改变了这种方法,在从Thread继承之前,我保留了这个类的Runnable方法。所以我只是删除了继承的那个。我怎样才能帮助您获得更详细的信息呢?您的问题总体上有点宽泛,要真正理解您需要什么,就需要了解您的代码。您似乎还假设在名为Thread的类中定义的方法在线程中执行。事实并非如此。您调用的每个方法都在调用线程中执行。线程不可能简单地切换。这就是为什么要调用线程的start方法,而不是run方法,后者稍后会从新线程中调用。问题其实不在于A是否知道B中的方法。这是我知道的开始。我现在读到了loopers/和MessageLoops。现在要创建的第二个线程必须做一些事情,然后宣布主线程,它自己将处理该进程,主线程生成第二个线程。第二个线程是对象,作为层次结构中的子线程,因此无法访问方法,必须在父对象和主线程中调用这些方法。我将继续阅读有关活套的文章。不过,我会在接下来的2到3天内尝试提供一些代码。