Callable
callable拥有返回值得runnable,可以通过FutureTask来进行包装
public class CallableDemo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
MyCallable myCallable = new MyCallable();
FutureTask task = new FutureTask(myCallable);
<pre><code> new Thread(task).start();
new Thread(task).start();
System.out.println(task.get());
System.out.println(task.get());
System.out.println("你好牙科的炬华科技爱好");
}
}
class MyCallable implements Callable<String> { private int k = 0; @Override public String call() throws Exception { return ++k + ""; } }
同一个task 经过不同线程start只会调用一次call方法
具体后续CAS原理在解释
评论区