What/Where is Thread Working Copy on physical device
From the java specification:
Every thread has a working memory in which it keeps its own working copy of variables that it must use or assign. As the thread executes a program, it operates on these working copies. The main memory contains the master copy of every variable. There are rules about when a thread is permitted or required to transfer the contents of its working copy of a variable into the master copy or vice versa.
What/Where is "Thread Working Copy"? Are they referring to CPU cache or RAM?
Reason for my confusion:
For the purposes of this chapter, the verbs use, assign, load, store, lock, and unlock name actions that a thread can perform. The verbs read, write, lock, and unlock name actions that the main memory subsystem can perform.
Are they referring these instructions with assembly code?
Note: I know the specification is old and I tagged this question to Java 14. I did this because the construct still holds true.
EDIT:
I created the following image, can it be marked as correct?
The "working copy" is a logical construct, not a physical one.
The complete data of each thread will be found in RAM and parts of it might or might not exist as copies in the CPU caches depending on when they were last required by the CPU.