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?
435 Views Asked by AudioBubble At
1
There are 1 best solutions below
Related Questions in PROJECT-LOOM
- Is curator's persistent ephemeral nodes just regular ephemeral with retries?
- IPython MPI with a Machinefile
- Prevent RabbitMQ erl_crash.dump files?
- Hazelcast 3.3 - EntryProcessor is accessing "non-local" keys
- Java RMI Compute Engine
- Data division on Addition of node to distributed System
- Shuffled vs non-shuffled coalesce in Apache Spark
- Accessing data on distributed database on OrientDB
- Leverage Round Robin DNS for image transfer
- MPI Allreduce error on MPICH 3.1.5 on ARMv7
Related Questions in JAVA-19
- Is curator's persistent ephemeral nodes just regular ephemeral with retries?
- IPython MPI with a Machinefile
- Prevent RabbitMQ erl_crash.dump files?
- Hazelcast 3.3 - EntryProcessor is accessing "non-local" keys
- Java RMI Compute Engine
- Data division on Addition of node to distributed System
- Shuffled vs non-shuffled coalesce in Apache Spark
- Accessing data on distributed database on OrientDB
- Leverage Round Robin DNS for image transfer
- MPI Allreduce error on MPICH 3.1.5 on ARMv7
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 # Hahtags
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