'Asynchronous equivalent of `apply()` builtin'

def apply_async(self, func, args=(), kwds={}, callback=None):

    result = ApplyResult(self._cache, callback)
    self._taskqueue.put(([(result._job, None, func, args, kwds)], None))
    return result
