puniverse / quasar

Fibers, Channels and Actors for the JVM

Home Page:http://docs.paralleluniverse.co/quasar/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

how to park multiple times in a fuction at different place ?

LingXi1420 opened this issue · comments

I just want to implement an aync mehod in one thread, and the method may pack and unpack many times , but once I call pack at the 2nd time, it will re-call the full method twice, I just need it to run from laster park block,

public class SuspendTest implements SuspendableRunnable {
public void run() throws SuspendExecution {
System.out.println("Thread name:" + Thread.currentThread().getName() + " run");
System.out.println("Thread name:" + Thread.currentThread().getName() + " before park");
Strand.park(this.obj);
System.out.println("Thread name:" + Thread.currentThread().getName() + " ==== unparked ");
System.out.println("Thread name:" + Thread.currentThread().getName() + " before park");
Strand.park(this.obj);
System.out.println("Thread name:" + Thread.currentThread().getName() + " ==== unparked ");
}
}

it print :
Thread name:ForkJoinPool-default-fiber-pool-worker-5 run
Thread name:ForkJoinPool-default-fiber-pool-worker-5 before park
Thread name:ForkJoinPool-default-fiber-pool-worker-5 run
Thread name:ForkJoinPool-default-fiber-pool-worker-5 before park
Thread name:ForkJoinPool-default-fiber-pool-worker-5 ==== unparked
Thread name:ForkJoinPool-default-fiber-pool-worker-5 before park