Commands run "in parallel" unless they have a subsystem dependency conflict. Methods are provided by the Command class in order to allow a command to do something if it is "interrupted" by another command that requires the same subsystems.
See
http://www.wbrobotics.com/javadoc/ed...l#interrupted()
The Command class also lets you set a command as non-interruptible, but I'm not sure if the scheduler actually honors that or if it is for you to fetch with isInterruptible when making some decisions somewhere.... I've never actually tried it.