java线程的run()没有返回值怎么办?

时间:2021-05-19

用线程Thread执行一些方法后,需要判断执行是否成功。

public void run() {}

run( ) 方法返回值是空, 怎么办?

解决方法:

  • Note
  • 使用 call() 方法
  • Callable接口是 jdk 5 后新增的接口

代码:

package com.example.thread;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.concurrent.Callable;import android.util.Log;import com.example.StreamTool.StreamTool;public class MyThread1 implements Callable<String> { private static final String tag = "xxxyyy"; private String phone; private String name; public MyThread1(String name, String phone) { this.name = name; this.phone = phone; } // public MyThread1(String name, String phone) {// super(name);// this.phone = phone;// } // public void run() {// Log.i(tag, Thread.currentThread().getName() + "......start");// String newpath = "http:///register"); con.setConnectTimeout(5000); con.setRequestMethod("GET"); float x = 3.4f; if (con.getResponseCode() == 200){ InputStream inputStr = con.getInputStream(); String info = new String(StreamTool.read(inputStr), "UTF-8"); Log.i(tag, Thread.currentThread().getName() + info); if(info.contains("200")) return "200"; } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // TODO Auto-generated method stub return "404"; } }

处理返回值

ExecutorService exec = Executors.newCachedThreadPool(); ArrayList<Future<String>> results = new ArrayList<Future<String>>(); for(int i = 0; i < num; i++) results.add(exec.submit(selectThread(telnumber))); for (Future<String> fs:results) try { if (fs.get().equals("200")) success++; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } return success;

以上就是本文的全部内容,希望对大家的学习有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章