java – 如何使用ExecutorService的返回值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何使用ExecutorService的返回值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1815字,纯文字阅读大概需要3分钟。
内容图文
![java – 如何使用ExecutorService的返回值](/upload/InfoBanner/zyjiaocheng/759/c0f3861e421b4ec4ac5cd879a8627fa5.jpg)
我在ExecutorService(发送电子邮件)下运行for循环
如果任何返回类型失败,我需要将返回resposne返回为“Fail”
或者我需要返回返回resposne作为“成功”
但在这种情况下,我无法返回值
我这样试过
import java.text.ParseException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Test {
public static void main(String[] args) throws ParseException {
String response = getDataCal();
System.out.println(response);
}
public static String getDataCal() {
ExecutorService emailExecutor = Executors.newSingleThreadExecutor();
emailExecutor.execute(new Runnable() {
@Override
public void run() {
try {
for(int i=0;i<2;i++)
{
String sss = getMYInfo(i);
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
return sss;
}
public static String getMYInfo(int i)
{
String somevav = "success";//Sometimes it returns fail or success
if(i==0)
{
somevav ="success";
}
else
{
somevav ="fail";
}
return somevav;
}
}
解决方法:
在Callable< String>中调用你的getMYInfo(i),将这个callable提交给executor,然后等待Future< String>的竞争.
private static ExecutorService emailExecutor = Executors.newSingleThreadExecutor();
public static void main(String[] args) {
getData();
}
private static void getData() {
List<Future<String>> futures = new ArrayList<>();
for (int i = 0; i < 2; i++) {
final Future<String> future = emailExecutor.submit(new MyInfoCallable(i));
futures.add(future);
}
for (Future<String> f : futures) {
try {
System.out.println(f.get());
} catch (InterruptedException | ExecutionException ex) {
}
}
}
public static String getMYInfo(int i) {
String somevav = "success";
if (i == 0) {
somevav = "success";
} else {
somevav = "fail";
}
return somevav;
}
private static class MyInfoCallable implements Callable<String> {
int i;
public MyInfoCallable(int i) {
this.i = i;
}
@Override
public String call() throws Exception {
return getMYInfo(i);
}
}
内容总结
以上是互联网集市为您收集整理的java – 如何使用ExecutorService的返回值全部内容,希望文章能够帮你解决java – 如何使用ExecutorService的返回值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。