Description
For full support of Virtual Threads, several sub-tasks need to be done:
- Avoid Lengthy and Frequent Pinning by replacing synchronized blocks with ReentrantLocks (use the option -Djdk.tracePinnedThreads=full to print stack traces when a thread blocks while pinned)
- Don't Cache Expensive Reusable Objects in Thread-Local Variables by avoiding thread locals when possible since when using Virtual Threads, the objects will never be reused so if the thread-local variables are never reset, it will end up with an OOME.
- Use Semaphores to Limit Concurrency instead of relying on the size of the thread pool when applicable
- Allow to expose ThreadPerTaskExecutor through JMX indeed so far it is limited to ThreadPoolExecutor
References https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html
Attachments
Issue Links
- is related to
-
CAMEL-20187 Add basic support of virtual threads
- Resolved
-
CAMEL-21247 camel-core - CamelThreadFactory should create thread via newer JDK api
- Resolved
- links to
(6 links to)