Priority is all about active and vulnerable hitboxes at the point of contact. Vulnerability refers to vulnerability against throws, attacks and/or projectiles. Active hitboxes are those that are capable of doing damage.
Moves that startup quickly usually have higher priority because their active hitboxes materialize quicker and therefore are able to intercept slower moves while they’re starting up, provided they make contact with a hitbox vulnerable to that type of attack.
When it comes to moves that start out simultaneously, then it works something like this:
If the active hitbox of your attack overlaps a part of opponent’s move that is invincible to that type of attack, and at least one of his move’s active hitboxes overlaps at least one of your move’s vulnerable hitboxes, his move will win. So it can be said that his move has priority over yours. The amount of priority a move has against another is a combination of how long it is invulnerable to that type of attack, the size of the invulnerable hitbox during this window, and the position of it’s active hitbox during this period.
Look at the following image:
Active hit boxes (ones with a red border) are the areas of a move capable of doing damage.
Green hit boxes are susceptible to normals (or specials) attacks or projectiles, but not throws
Blue hit boxes are susceptible to normals (or specials) and throws, but not projectiles
Orange hit boxes are susceptible to all attacks.
Anything that doesn’t have a coloured square over hit cannot interact with another move.
It should be clear to see why Ryu’s DP has priority over most moves and why Zangief’s lariat is hard to beat with a standing attack.
For more hitbox info check this thread: