-
}
-
};
-
FutureTask future = new FutureTask(callable);
-
new Thread(future).start();
-
try {
-
Thread.sleep(5000);// 可能做一些事情
-
System.out.println(future.get());
-
} catch (InterruptedException e) {
-
e.printStackTrace();
-
} catch (ExecutionException e) {
-
e.printStackTrace();
-
}
-
}
-
}
FutureTask实现了两个接口,Runnable和Future,所以它既可以作为Runnable被线程执行,又可以作为Future得到Callable的返回值,那么这个组合的使用有什么好处呢?假设有一个很耗时的返回值需要计算,并且这个返回值不是立刻需要的话,那么就可以使用这个组合,用另一个线程去计算返回值,而当前线程在使用这个返回值之前可以做其它的 *** 作,等到需要这个返回值时,再通过Future得到,岂不美哉!这里有一个Future模式的介绍: [](()[http://openhome.cc/Gossip/DesignPattern/FuturePattern.htm](() 。
下面来看另一种方式使用Callable和Future,通过ExecutorService的submit方法执行Callable,并返回Future,代码如下:
[java] [view plain](() [copy](() [print](() [?](() [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kzNciWVe-1650015931513)(https://code.csdn.net/assets/CODE_ico.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lA9aVQe8-1650015931513)(ht 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》开源 tps://code.csdn.net/assets/ico_fork.svg)]
-
public class CallableAndFuture {
-
public static void main(String[] args) {
-
ExecutorService threadPool = Executors.newSingleThreadExecutor();
-
Future future = threadPool.submit(new Callable() {
-
Android开源项目《ali1024.coding.net/public/P7/Android/git》 public Integer call() throws Exception {
-
return new Random().nextInt(100);
-
}
-
});
-
try {
-
Thread.sleep(5000);// 可能做一些事情
-
System.out.println(future.get());
-
} catch (InterruptedException e) {
-
e.printStackTrace();
-
} catch (ExecutionException e) {
-
e.printStackTrace();
-
}
-
}
-
}
其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
这里再分享一下我面试期间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)
《Android开发七大模块核心知识笔记》
《960全网最全Android开发笔记》
《379页Android开发面试宝典》
历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
id,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)