Independent blocking task တစ်ခုစီအတွက်virtual thread တစ်ခုဖန်တီးပြီးresult သို့failure အားလုံးကိုစောင့်ပါ။
ပိုပြီးနားလည်ထားရမယ့် အချက်
Concurrency သည်shared mutable state, ordering, cancellation နဲ့failure propagation ကိုdesign လုပ်ရခြင်းဖြစ်ပါတယ်။ Java 21 မှfinal ဖြစ်သောvirtual threads သည်blocking I/O workloads ကိုscale လုပ်ရန်အသုံးဝင်သော်လည်းCPU work ကိုပိုမြန်စေခြင်းမဟုတ်ဘဲpool လုပ်ရန်လည်းမလိုပါ။
လက်တွေ့မှာ ဘယ်လိုအသုံးချမလဲ
Virtual-thread-per-task executor ဖြင့်independent blocking-style tasks run လုပ်ပြီးresults/errors အားလုံးjoin လုပ်ကာexecutor lifecycle ကိုclose လုပ်ပါ။
ဒီသင်ခန်းစာပြီးရင်
import java.util.concurrent.Executors;
class Main {
public static void main(String[] args) throws Exception {
try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
var result = executor.submit(
() -> "Virtual: " + Thread.currentThread().isVirtual()
);
System.out.println(result.get());
}
}
}Virtual: trueကိုယ်တိုင်စမ်းကြည့်ရန်
Virtual-thread-per-task executor ဖြင့်independent blocking-style tasks run လုပ်ပြီးresults/errors အားလုံးjoin လုပ်ကာexecutor lifecycle ကိုclose လုပ်ပါ။
Common Mistake သတိပေးချက်
Data race ကိုthread-safe collection တစ်ခုတည်းနဲ့အလိုအလျောက်ပြေလည်မယ်ဟုယူဆခြင်း သို့မဟုတ်virtual threads ကိုscarce pooled resources လိုpool လုပ်ခြင်း။
JEP 444: Virtual Threads — OpenJDK