如何比较Javaflow中的两个continuation?

如何比较Javaflow中的两个continuation?,java,Java,我是javaflow的新手。考虑下面的基本例子: class MyRunnable implements Runnable { public void run() { System.out.println("started!"); for( int i=0; i<10; i++ ) echo(i); } private void echo(int x) { System.out.println(x);

我是javaflow的新手。考虑下面的基本例子:

class MyRunnable implements Runnable {

     public void run() {

      System.out.println("started!");
      for( int i=0; i<10; i++ )
      echo(i);
      }

      private void echo(int x) {

      System.out.println(x);
      Continuation.suspend();
     }

    }

    Continuation c = Continuation.startWith(new MyRunnable()); 
    Continuation d = Continuation.continueWith(c);
    Continuation e = Continuation.continueWith(d);
    Continuation f = Continuation.continueWith(d);

    if (e.equals(f)) System.out.println("They are equal!");
    else System.out.println("They are not equal!");
连续e和f都从相同的检查点d开始,并捕获 相同的堆栈,也都打印1。那为什么他们不是呢
相同的程序给出这个输出。有人能给我解释一下吗?

JavaFlow中的Continuations实现默认的.equals语义。也就是说,它们不会重载对象类的.equals方法

您可以在中的实现中亲自看到它


这就是说,即使您将Continuations设置为对应于相同的堆栈状态,也就是它们使.equals工作的方式,它将返回false。

+1'因为我以前从未听说过javaflow。整洁-共程!谢谢你的回答。这是有用的。这意味着e和f是两个不同的对象,它们在示例中返回false,对吗?是的,Object.equals的默认行为是当两个对象不是同一个对象时返回false。有些类重写.equals方法:字符串、文件、整数。。。下面是一些例子。但是这取决于类的实现者来重写。equals.Hi Max:你能回答我的问题吗:看来你能帮我解决这个问题。我真的需要你的帮助。如何将一个延续保存到磁盘,并在以后从磁盘上保存的延续运行程序?