<meta http-equiv="Content-Type" content="text/html; charset=GB18030"><div>Hi All</div><div>    I'm one of openjdk user and these days I tried to use the preview feature Virtual Thread with Disruptor. when use ThreadFactory in Disruptor workerPool, somingthing seems wrong that when I used Thread.ofVirtual().start. the new created virtualThread seems don't start? it don't print hello world, I'm not sure whether it's a bug or I use it wrong, here are my core test code</div><div><br></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;">    </span><span class="s2" style="font-variant-ligatures: no-common-ligatures;">public</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="s2" style="font-variant-ligatures: no-common-ligatures;">void</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> test2() </span><span class="s2" style="font-variant-ligatures: no-common-ligatures;">throws</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> InterruptedException {</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">        </span>System.out.println( </span><span class="s3" style="font-variant-ligatures: no-common-ligatures;">"Start Test!"</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> );</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">        </span>RingBuffer<Order> ringBuffer = RingBuffer.create(ProducerType.MULTI, </span><span class="s4" style="font-variant-ligatures: no-common-ligatures;">new</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> EventFactory<Order>() {</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;">            </span><span class="s5" style="font-variant-ligatures: no-common-ligatures;">@Override</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;">            </span><span class="s2" style="font-variant-ligatures: no-common-ligatures;">public</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> Order newInstance() {</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;">                </span><span class="s4" style="font-variant-ligatures: no-common-ligatures;">return</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> </span><span class="s4" style="font-variant-ligatures: no-common-ligatures;">new</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> Order();</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><span class="s1" style="font-variant-ligatures: no-common-ligatures; background-color: rgb(255, 255, 255);"><font size="1"><i><b><span class="Apple-converted-space">            </span>}<span class="Apple-converted-space">   </span></b></i></font></span></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">        </span>}, </span><span class="s3" style="font-variant-ligatures: no-common-ligatures;">1024</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> * </span><span class="s3" style="font-variant-ligatures: no-common-ligatures;">1024</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;">, </span><span class="s4" style="font-variant-ligatures: no-common-ligatures;">new</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> YieldingWaitStrategy());</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><span class="s1" style="font-variant-ligatures: no-common-ligatures; background-color: rgb(255, 255, 255);"><font size="1"><i><b><span class="Apple-converted-space">        </span>SequenceBarrier barrier = ringBuffer.newBarrier();</b></i></font></span></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">        </span>Consumer[] consumers=<span class="Apple-converted-space">  </span></span><span class="s4" style="font-variant-ligatures: no-common-ligatures;">new</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> Consumer[</span><span class="s3" style="font-variant-ligatures: no-common-ligatures;">10</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;">];</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;">        </span><span class="s4" style="font-variant-ligatures: no-common-ligatures;">for</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> (</span><span class="s2" style="font-variant-ligatures: no-common-ligatures;">int</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> i = </span><span class="s3" style="font-variant-ligatures: no-common-ligatures;">0</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;">; i < consumers.length; i++) {</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">            </span>consumers[i] = </span><span class="s4" style="font-variant-ligatures: no-common-ligatures;">new</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> Consumer(</span><span class="s3" style="font-variant-ligatures: no-common-ligatures;">"C"</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;">+i);</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><span class="s1" style="font-variant-ligatures: no-common-ligatures; background-color: rgb(255, 255, 255);"><font size="1"><i><b><span class="Apple-converted-space">        </span>}<span class="Apple-converted-space">   </span></b></i></font></span></p><p class="p2" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco; min-height: 22px;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"></span><br></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">        </span>WorkerPool<Order> workerPool = </span><span class="s4" style="font-variant-ligatures: no-common-ligatures;">new</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> WorkerPool<>(ringBuffer, barrier, </span><span class="s4" style="font-variant-ligatures: no-common-ligatures;">new</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> EventExceptionHandle(), consumers);</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><span class="s1" style="font-variant-ligatures: no-common-ligatures; background-color: rgb(255, 255, 255);"><font size="1"><i><b><span class="Apple-converted-space">        </span>ringBuffer.addGatingSequences(workerPool.getWorkerSequences());</b></i></font></span></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><span class="s1" style="font-variant-ligatures: no-common-ligatures; background-color: rgb(255, 255, 255);"><font size="1"><i><b><span class="Apple-converted-space">        </span>ThreadFactory factory_v = Thread.ofVirtual().factory();</b></i></font></span></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">        </span>ExecutorService pool = Executors.newFixedThreadPool(</span><span class="s3" style="font-variant-ligatures: no-common-ligatures;">10</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;">, factory_v);</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><span class="s1" style="font-variant-ligatures: no-common-ligatures; background-color: rgb(255, 255, 255);"><font size="1"><i><b><span class="Apple-converted-space">        </span>workerPool.start(pool);</b></i></font></span></p><p class="p2" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco; min-height: 22px;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"></span><br></b></i></font></p><p class="p3" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style=""><i style=""><b style=""><span class="s6" style="background-color: rgb(255, 255, 255); font-variant-ligatures: no-common-ligatures;">        </span><span class="s1" style="font-variant-ligatures: no-common-ligatures; background-color: rgb(255, 255, 0);">// don't print hello world?</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">        </span>Thread thd = Thread.ofVirtual().start(() -> System.out.println(</span><span class="s3" style="font-variant-ligatures: no-common-ligatures;">"Hello world!"</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;">));</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">        </span>Thread.sleep(</span><span class="s3" style="font-variant-ligatures: no-common-ligatures;">5000</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;">);</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">        </span>System.out.println(</span><span class="s3" style="font-variant-ligatures: no-common-ligatures;">"End Test!"</span><span class="s1" style="font-variant-ligatures: no-common-ligatures;"> );</span></b></i></font></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><font size="1" style="background-color: rgb(255, 255, 255);"><i><b><span class="Apple-converted-space" style="">    </span>}</b></i></font><span class="Apple-converted-space" style=""><font size="1" style="background-color: rgb(255, 255, 255);"><i><b>     </b></i></font></span></span></p><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: normal; font-family: Monaco;"><br></p></div><div>looking forward to your answers.</div><div>best wishesŁĄ</div><div><i>-Anjian Wen</i></div><div><br></div><div></div>