[ https://issues.apache.org/jira/browse/CAMEL-20199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nicolas Filotto updated CAMEL-20199: ------------------------------------ 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=ful}} 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 was: For a 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=ful}} to print stack traces when thread block 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 > Complete support of Virtual Threads > ----------------------------------- > > Key: CAMEL-20199 > URL: https://issues.apache.org/jira/browse/CAMEL-20199 > Project: Camel > Issue Type: Improvement > Components: came-core > Reporter: Nicolas Filotto > Priority: Major > > 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=ful}} 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 -- This message was sent by Atlassian Jira (v8.20.10#820010)