Supports multi-thread call.