假如线程执行完毕后有一些数据需要返回,他们重写的run方法均不能直接返回结果。
怎么解决这个问题?
JDK5.0提供了Callable接口和FutureTask类来实现(多线程的第三种创建方法)。
这种方式最大的优点:可以返回线程执行完毕后的结果。
多线程的第三种创建方式:利用Callable接口,FutureTask类来实现。
1)创建任务对象;
定义一个类实现Callable接口,重写call方法,封装要做的事情,和要返回的数据。
把Callable类型的对象封装成FutureTask(线程任务对象)。
2)把线程任务对象交给Thread对象。
3)调用Thread对象的start方法启动线程。
4)线程执行完毕后,通过FutureTask对象的get方法去获取线程任务执行的结果。
MyCallable:
测试类:
运行结果:
如果上面的线程还没有执行完毕,这里的代码会暂停,等待上面线程执行完毕后才会获取结果。

线程创建方式三的优缺点:
优点:线程任务类只是实现接口,可以继续继承类和实现接口,扩展性强;可以在线程执行完毕后去获取线程执行的结果。
缺点:编码复杂一点。
到此这篇java调用dll动态库代码(java 使用dll)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/jjc/33530.html