use NSCondition to let the thread wait when there is no task
Add BTConcurrentOperation