Understanding The Difference Between Dispatchqueue.global.sync And The Main Thread In Swift