hey, i cant find any doc that explaine how does the whole idea of queues work. i mean, i understand that firing tasks on background threads can be very useful, but what about the timing? how does an api like gcd handles it? what happens if i run a method and inside that method i run a block in another thread, what is going to happen if the block runs slower than the method? what if that mathod needs the block to finish its calc to continue executing?? i`ve heard GCD handles it, but i have to understand how! does it know how much time every task is going to take before i even run it?! confused. BTW if you i`ll be willing to accent any means of GCD and Queues visualizationso i can grasp the theory behind it, tnx.