> You aren't forced into sharing memory across parts of your program that have no business sharing memory.
I think you are confused (but I didn't downvote you, someone did and then also downvoted my post, was it you ;-) )
Anyway. Unless you use Erlang or fork OS processes you will be sharing memory between your concurrency units.
So learn Erlang it will do you good
http://learnyousomeerlang.com/content
You can build java threads with queues and that works fine. You can shoot yourself in the foot with Go or node.js (probably more so).