use*_*201 4 java multithreading
Java新手在这里.我正在使用第三方库给我一个函数,比如F(),其输出决定了我的逻辑.所以我需要它的结果继续我的代码.
问题是F()做了一些I/O,因此产生了一个线程来完成这个功能.他们给了我一些实现的回调,这些回调被调用来从线程返回状态/值.这很好,除了函数F()立即返回并且我的其余代码继续运行.我不希望这样,因为我必须根据F()的结果分配一些对象,所以我真的想等待F()真正完成.
这应该是人们经常遇到的问题.处理这个问题的正确方法是什么?这是我的设计或第三方库中的问题吗?或者我不太了解图书馆?
为了完整起见,我正在开发一个Android应用程序,该库是facebook sdk.该函数是单点登录函数authorize().虽然这是一个通用的问题,我认为最好在Java论坛中解决.
谢谢你的帮助. - P.
我不熟悉的Facebook SDK,但正常的机制来处理异步操作,如这是可赎回<>或未来<>接口:您需要创建一个服务执行者,通过在可赎回<>或未来<>,然后继续你的代码.
可以从Future <> javadoc找到一个例子:http://download.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html
另见StackOverflow问题/答案如何从Callable()返回对象
| 归档时间: |
|
| 查看次数: |
3378 次 |
| 最近记录: |