But OS X has long supported multi-threading, they could write it directly using the multi-threading interface and move that section over to GCD when a majority of users are using 10.6 or later... Multi-tasking didn't just magically appear, when Apple release 10.6 with GCD, they just provided a set of high-level routines to make it easier.
Windows has supported multi-threading since 1996, through a set of API calls, to spawn off new processes and checking flags etc. These are also available through the .Net framework (
CLicky).
A simple procedure to count down seconds...
Code to call the above function from 3 different threads, each runnning concurrently.