assume we have 2 threads, thread A and thread B.
thread A is the main method and contain large data structures.
is it possible to create a second thread and pass the address(a pointer) of the data structure (local to thread A) to thread B so both thread can read from the data structure?
the point of this is to avoid the need to duplicate the entire data structure on thread B or spend a lot of time pulling relevant information from the data structure for thread B to use
keep in mind that neither thread is modifying the data
It’s known as a reference in java, as you don’t have access directly to a pointer in a conventional sense. (For most cases it’s “safe” to think of it as every reference is a pointer that is always passed by value and the only legal operation is to dereference it. It is NOT the same as a C++ ‘reference.’)
You can certainly share references among threads. Anything that’s on the heap can be seen and used by any thread that can get a reference to it. You can either put it in a static location, or set the value of a reference on your
Runnableto point to the data.