There are virtual interactions in multithreaded programming. Virtual in this sense basically means internal - if two threads have a secret backchannel to send messages and you don't have access to any of their internals, you can model their behavior with "virtual" messages. To be general, it would even be a mixture of all possible implementations.
Only those messages detectable from the outside are "real".
Besides, if you have threads separated by significant difference, there isn't even a canonical ordering of events due to special relativity.
Only those messages detectable from the outside are "real".
Besides, if you have threads separated by significant difference, there isn't even a canonical ordering of events due to special relativity.