No, a mutex will
prevent different process to screw up access, through synchronization.
Yes, a mutex can be shared by two or more threads of different processes, not only the threads of the same process.
If a mutex is used by threads of the same processes, it does not have to be named, but different processes requires the name. This is because all processes are well isolated; and the memory locations, such as pointers to an object like a mutex may have formally identical address in each memory space but point to different physical location. This way, without a name, it would be impossible to share any object. So, each process gets its own pointer to a mutex, which physically should be one shared object.
Please see:
http://en.wikipedia.org/wiki/Mutex[
^],
http://msdn.microsoft.com/en-us/library/tt45160e%28v=vs.80%29.aspx[
^].
—SA