First, it will print “Apple”. Next logic is contained in a 'main' async event. So it's postponed. The next thing it will print is "Apple TV". Once the main thread is free, our first main.async task will run. So “iPod” will print. Next to its main.async task again. For this to execute, the main thread needs free. Since we're still in the middle of the control flow, It will move to DispatchQueue.global().sync. Read carefully, that it's dispatching sync not async. That means that the main thread is frozen until the code dispatched to the global queue is done.Then it will print “Apple Watch”. So finally prints “iPhone”. Expect to come across this, one of the most important iOS interview questions for experienced professionals in product management, in your next interviews.