As far as I know, a miner begins creating a new block as soon as it receives a valid block from another miner. It then begins to construct and hash the next block on top of the block it just received by using all the transactions it has in its memory pool.
Can anyone explain to me why this can happen? Is it because of some transaction selection mechanism that the miners use? or is it because of the unreliability of the connecitivity between the nodes? or something else?