Is there a way to know which platform thread is carrying the current virtual thread or pin a virtual thread to a platform thread and get its threadlocal in JDK19? I want to reuse some objects in virtual threads, something like sync.Pool in Golang.
How to know which platform thread is carrying the virtual thread?
449 Views Asked by AudioBubble At
1
There are 1 best solutions below
Related Questions in PROJECT-LOOM
- Java 21 built-in HTTP client pins the carrier thread
- Apache Tomcat with virtual thread
- Detect Project Loom technology as missing or present JVM at runtime
- Is `Thread.sleep` different with virtual threads (fibers) in Project Loom for Java
- May I have Project Loom Clarified?
- Project loom: Why are virtual threads not the default?
- What exactly makes Java Virtual Threads better
- Virtual threads slower than single threads
- Project Loom: carrier pinning
- Issues in running virtual threads program on intellij with java19
- In Loom, can I use virtual threads for Recursive[Action/Task]?
- How does a Java virtual thread know when the thread is waiting?
- How to know which platform thread is carrying the virtual thread?
- Does the Java JIT ever optimize away recursive method calls?
- Synchronize block pinning virtual thread
Related Questions in JAVA-19
- JavaFX Working Except for FXMLLoader Import
- Eclipse IDE will not allow me to create a New FXML Document for JavaFX. Errors out
- Declaration of a value-type Class
- Record implementing Interface returns false when checked using instanceof (spring-boot, Java 19)
- How to make UUID auto generated in springbok Cassandra app
- Currency difference between java 18 and java 19
- SecurityManager deprecation and reflection with suppressAccessChecks
- Java Switch Without Expression
- How can I know if a Java 19 Structured Concurrency StructuredTaskScope is shutdown ( canceled )?
- get this error when i want to run compiled class java.lang.UnsupportedClassVersionError
- Issues in running virtual threads program on intellij with java19
- java.util.logging (Java 19) - Why isn't the logging written to disk immediately?
- How to know which platform thread is carrying the virtual thread?
- Why does moving an iteration-invariant vector out of a loop induce unnecessary GC activity?
- no usage found in project files
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
From JEP 425, the spec for virtual threads in JDK 19:
So, no, I don't think there is any way to determine which platform thread is running a virtual thread (i.e. in Java code; there are ways to observe this via tooling such as the Java Flight Recorder).
Pinning a thread is something to be avoided [1], and so I doubt there is any way to explicitly do that. From the same JEP 425:
Given the above quote, and various presentations/documentation to that effect, I would be very surprised if there were a way to pin a thread explicitly via an API.
Finally, regarding ThreadLocals, there is a discussion at [2] where the Project Loom team mentions the dangers of caching expensive objects in ThreadLocals (note that they do not mention access to the underlying platform thread). I'm not familiar with the Go construct but you may want to consider JEP 429 on Extent-Locals.
[1] - see 36m20s here, a presentation by the Project Loom team
[2] - see 35m01s here, the same presentation by the Project Loom team