UILabel costs more than what you think Always start with serial queues, and only use concurrent queues as a last resort Avoid using dispatch_semaphore_t to wait for asynchronous work Don’t use UIView tags
UILabel
dispatch_semaphore_t