Java 如何允许线程在彼此之间修改/获取信息?

Java 如何允许线程在彼此之间修改/获取信息?,java,multithreading,events,handlers,Java,Multithreading,Events,Handlers,我的问题更多的是关于编程模式,而不是关于一个具体的案例 我想知道如何更好地管理并发线程之间的交互 比如说我有: Class Ocean implements Runnable { Boat myBoat; // standard stuff @Override public void run(){ // the boat navigates through the sees… } } 以下是一个不同的线程,因为它必须同时运行: Class Rada

我的问题更多的是关于编程模式,而不是关于一个具体的案例

我想知道如何更好地管理并发线程之间的交互

比如说我有:

Class Ocean implements Runnable {
   Boat myBoat;

   // standard stuff

   @Override
   public void run(){
      // the boat navigates through the sees…
   }
}
以下是一个不同的线程,因为它必须同时运行:

Class Radar implements Runnable {

    // standard stuff

    public int scanOcean(){
        // return boat.position();
    }
}
例如,这两个类都是我的Main方法的对象

现在的问题是:如何访问另一个线程中的方法?我查了一下,但是我找不到任何一致的和实际的答案

一些站点引用另一个线程可能使用的volatile字段声明,一些站点讲述事件监听器,其他站点讲述事件处理程序……我应该使用标准的Observer/Subject模式吗

谢谢


Silver Duck

我对中间助手对象有很好的体验,它只保存线程间共享的数据,如状态信息、中止标志等。这并不适合所有的情况,但对我来说经常如此

helper实例应该根据需要在其方法、getter和setter中实现和封装锁定,因此您不必在外部处理它


一致、线程安全、易于使用。

这取决于您的用例。有很多可能的解决方案,没有一个适合所有人的。是的,我可以想象。但现在我正在开发一个与我举的例子大致相同的应用程序:谢谢,听起来像是对我的项目可行的东西!我将用它做一些试验。