Pipelines of one branch have to wait for pipelines of another branch

In a project, there are multiple branches, such as branch A, branch B, and branch C.
Switching to branch A, I started a pipeline.
Ten seconds later I switched to branch B and started a pipeline.

I found that when A’s pipeline runs a script for 3 minutes, then B’s Pipelines will always be in the pending stage.

This is very strange. Pipelines of one branch have to wait for pipelines of another branch.

Is there any other way to solve this problem?