L'interface Callable est fournie depuis Java5. Cette interface est une version améliorée de l'interface Runnable fournit une méthode call() comme corps d'exécution du thread. ) peut avoir une valeur de retour. La méthode call () peut être déclarée pour lever une exception.
boolean Cancel(boolean may)
Tente d'annuler la tâche appelable associée dans ce futur. boolean cancel(boolean may)
试图取消该 Future 里关联的 Callable 任务。
V get()
返回 Call 任务里 call() 方法的返回值。调用该方法会照成线程阻塞,必须等待子线程结束后才会得到返回值。
V get(long timeout,TimeUnit unit)
返回 Call 任务里 call() 方法的返回值。该方法让程序最多阻塞 timeout 和 unit 指定的时间,如果经过指定的时间,如果经过指定的时间依然没有返回值,将会抛出 TimeoutException 异常。
boolean isCancelled()
如果在 Callable 任务正常完成前被取消,则返回 true。
boolean isDone()
V get()
Renvoie la valeur de retour de la méthode call() dans la tâche Call. L’appel de cette méthode entraînera le blocage du thread et vous devrez attendre la fin du thread enfant avant d’obtenir la valeur de retour. V get(long timeout,TimeUnit unit)
Renvoie la valeur de retour de la méthode call() dans la tâche Call. Cette méthode permet au programme de bloquer jusqu'au temps spécifié par timeout et unit. Si le temps spécifié s'écoule et s'il n'y a toujours pas de valeur de retour après le temps spécifié, une exception TimeoutException sera levée. boolean isCancelled()
Renvoie vrai si la tâche appelable est annulée avant qu'elle ne se termine normalement. boolean isDone()
Renvoie vrai si la tâche Callable est terminée. <code>public class CallableDemo implements Callable<Integer> {<br> public static void main(String args[]) {<br> FutureTask<Integer> futureTask = new FutureTask<Integer>(new CallableDemo());<br> new Thread(futureTask).start();<br> try {<br> System.out.println("子线程返回值:" + futureTask.get());<br> } catch (InterruptedException e) {<br> e.printStackTrace();<br> } catch (ExecutionException e) {<br> e.printStackTrace();<br> }<br> if (futureTask.isDone()) {<br> System.out.println("线程结束");<br> }<br> }<br><br> @Override<br> public Integer call() throws Exception {<br> System.out.println("线程开始");<br> int ss = 0;<br> for (int i = 0; i < 20; i++) {<br> ss += i;<br> }<br> return ss;<br> }<br>}</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!