import Foundation


DispatchQueue.main.async {
    print("A")
}

print("B")

上記をプレイグラウンドで試行したとろころ、毎回

B
A

と表示されました(試した回数は5回ほど)

さらに、

import Foundation

for _ in 1...10 {
    DispatchQueue.main.async {
        print("A")
    }

    print("B")
}

を試したところ出力は、

B
B
B
B
B
B
B
B
B
B
A
A
A
A
A
A
A
A
A
A

でした。

非同期で動くので、BとAが交互に出力される場合があってもおかしくない気がするのですが、なぜBが先に全部表示されるのでしょうか?