In reply to jsaluja:
That video is incorrect saying non-blocking assignment (NBA) statements run in parallel. All statements within a begin/end block run sequentially. I think they are referring to how synthesis tools create logic for these statements, but that does not apply to this code.
And for the code above, there is no difference between using non-blocking and blocking assignments.