[ https://issues.apache.org/jira/browse/CXF-9028?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andriy Redko closed CXF-9028. ----------------------------- Resolution: Won't Fix > CXF produces thread pinning when using virtual threads > ------------------------------------------------------ > > Key: CXF-9028 > URL: https://issues.apache.org/jira/browse/CXF-9028 > Project: CXF > Issue Type: Bug > Reporter: Jose Antonio > Priority: Major > Attachments: image-2024-06-11-13-14-36-151.png, > image-2024-06-11-13-15-39-139.png > > > When using virtual threads, it's important to avoid the use of synchronized > objects and methods because I/O operations executed in them will pin the > virtual thread to its carrier thread, blocking the carrier thread instead of > the virtual one. > Executing some tests with a CXF client in a Tomcat server using virtual > threads I see that, if I spawn a few tens of virtual threads I get a lot of > thread pinning due to the code in > > {code:java} > PhaseInterceptorChain{code} > > In this class, there's a method that's invoked for all requests > > {code:java} > public synchronized boolean doIntercept(Message message){code} > > This method pins the virtual thread to the carrier thread for all the > duration of the request and response, which might be a lot of time and it > hinders the multithreaded applications throughput. Just changing the use of > synchronized keywords for ReentrantLocks will solve this issue. > > !image-2024-06-11-13-15-39-139.png|width=769,height=357! > -- This message was sent by Atlassian Jira (v8.20.10#820010)