<div class="__aliyun_email_body_block"><div  style="line-height:1.7;font-family:Tahoma,Arial,STHeiti,SimSun;font-size:14.0px;color:#000000;"><div  style="clear:both;"><br ></div><div  style="clear:both;">Hi team, thank for roll this out:</div><div  style="clear:both;"><br ></div><div  style="clear:both;">I have a question about the current api of `VirtualThread`. The current `VirtualThread` 's constructor is `</div><div  style="clear:both;"><br ></div><div  style="clear:both;background-color:#2b2b2b;color:#a9b7c6;font-family:'Source Code Pro',monospace;font-size:20.0px;white-space:pre;">VirtualThread(Executor scheduler<span  style="color:#cc7832;">, </span>String name<span  style="color:#cc7832;">, int </span>characteristics<span  style="color:#cc7832;">, </span>Runnable task)</div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;">And using a </div><div  style="clear:both;background-color:#2b2b2b;color:#a9b7c6;font-family:'Source Code Pro',monospace;font-size:20.0px;white-space:pre;"><span  style="color:#cc7832;">private static final </span>ScheduledExecutorService UNPARKER = createDelayedTaskScheduler()<span  style="color:#cc7832;">;</span></div><div  style="clear:both;"><br ></div><div  style="clear:both;">to do all the `unpark` of virtualThread.</div><div  style="clear:both;"><br ></div><div  style="clear:both;">What if I Want to implement a `VirturalThread` Scheduler other than the default FPJ based one?And I can even using Netty's `EventLoopGroup` to do this, And the `EventLoop` itself can do scheduling too.</div><div  style="clear:both;"><br ></div><div  style="clear:both;">There is no way for user to provide a user specified `Unparker`.</div><div  style="clear:both;"><br ></div><div  style="clear:both;">What if we change the constructor to something like:<br ></div><div  style="clear:both;"><div  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;clear:both;background-color:#2b2b2b;color:#a9b7c6;font-family:'Source Code Pro',monospace;font-size:20.0px;white-space:pre;">VirtualThread(Scheduler scheduler<span  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;color:#cc7832;">, </span>String name<span  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;color:#cc7832;">, int </span>characteristics<span  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;color:#cc7832;">, </span>Runnable task)</div><div  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;clear:both;"><br  style="color:#000000;font-family:Tahoma,Arial,STHeiti,SimSun;font-size:14.0px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:.0px;text-transform:none;white-space:normal;widows:2;word-spacing:.0px;-webkit-text-stroke-width:.0px;background-color:#ffffff;text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;"></div></div><div  style="clear:both;">where Scheduler can do Scheduling and executing.</div><div  style="clear:both;"><br ></div><div  style="clear:both;">Or</div><div  style="clear:both;"><br ></div><div  style="clear:both;"><div  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;clear:both;background-color:#2b2b2b;color:#a9b7c6;font-family:'Source Code Pro',monospace;font-size:20.0px;white-space:pre;">VirtualThread(Executor scheduler<span  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;color:#cc7832;">, </span>ScheduledExecutorService unparker, String name<span  style="color:#cc7832;">, int </span>characteristics<span  style="color:#cc7832;">, </span>Runnable task)</div><div  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;clear:both;"><br  style="color:#000000;font-family:Tahoma,Arial,STHeiti,SimSun;font-size:14.0px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:.0px;text-transform:none;white-space:normal;widows:2;word-spacing:.0px;-webkit-text-stroke-width:.0px;background-color:#ffffff;text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;"></div><div  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;clear:both;">Or</div><div  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;clear:both;"><br ></div><div  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;clear:both;"><div  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;clear:both;background-color:#2b2b2b;color:#a9b7c6;font-family:'Source Code Pro',monospace;font-size:20.0px;white-space:pre;">VirtualThread(ScheduledExecutorService <span  style="color:#a9b7c6;font-family:'Source Code Pro',monospace;font-size:20.0px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:.0px;text-transform:none;white-space:pre;word-spacing:.0px;background-color:#2b2b2b;text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline;">scheduler</span>, String name<span  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;color:#cc7832;">, int </span>characteristics<span  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;color:#cc7832;">, </span>Runnable task)</div><div  style="margin:.0px;padding:.0px;border:.0px;outline:.0px;clear:both;"><br  style="color:#000000;font-family:Tahoma,Arial,STHeiti,SimSun;font-size:14.0px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:start;text-indent:.0px;text-transform:none;white-space:normal;widows:2;word-spacing:.0px;-webkit-text-stroke-width:.0px;text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;background-color:#ffffff;"></div></div></div><div  style="clear:both;">The Tikio's Scheduler can do the scheduling and do not need another inner unparker.</div><div  style="clear:both;"><br ></div><div  style="clear:both;">And I'm would be very happy to hear you, thanks.</div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div><div  style="clear:both;"><br ></div></div></div>