Attempts to cancel execution of this task. This attempt will fail if the task has already completed, has already been cancelled, or could not be cancelled for some other reason. If successful, and this task has not started when {@code cancel} is called,this task should never run. If the task has already started, then the {@code mayInterruptIfRunning} parameter determineswhether the thread executing this task should be interrupted in an attempt to stop the task.
After this method returns, subsequent calls to {@link #isDone} willalways return {@code true}. Subsequent calls to {@link #isCancelled}will always return {@code true} if this method returned {@code true}.
@param mayInterruptIfRunning {@code true} if the thread executing thistask should be interrupted; otherwise, in-progress tasks are allowed to complete
@return {@code false} if the task could not be cancelled,typically because it has already completed normally; {@code true} otherwise