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

网友投稿 207 2023-07-23


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

用线程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 {

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://dianping.com/ajax/json/account/reg/mobile/send?m=" + phone + "&flow=t&callback=DP._JSONPRequest._5";

// StringBuilder strBui = new StringBuilder(newpath);

//

// try {

// URL url = new URL(strBui.toString());

// HttpURLConnection con = (HttpURLConnection) url.openConnection();

// con.addRequestProperty("Content-Type", "text/html; charset=UTF-8");

// con.addRequestProperty(

// "User-Agent",

// "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36");

// con.addRequestProperty("Cookie", "_hc.v=\"\\\"0ffcdf91-a4d6-4b08-8800-3d59d2e2fe45.1413899372\\\"\"; abtest=\"48,124\\|52,133\\|47,122\\|44,106\\|45,115\"; __utma=1.29319792.1412090870.1413609669.1413645970.5; __utmz=1.1413645970.5.2.utmcsr=t.dianping.com|utmccn=(referral)|utmcmd=referral|utmcct=/xian; _tr.u=7dhY0yFhd9rY065F; tc=17; cy=17; cye=xian; t_rct=2172824|2171729|6457678; PHOENIX_ID=0a01743f-1492e1321c8-46e6a; 13.t=17deda7d2a7d8e46d84bf12a74627b72; 13.ts=cd3bd6495620e2a204912c4bdfd43220; thirdtoken=891671FC6B450418DD6E0611A3E4CF48; _hc.v=\"\\\"1bdad871-405e-46e3-97d6-46571ad48e14.1413897928\\\"\"; _tr.s=Zy1Ca2OAe1ptv06o; JSESSIONID=891671FC6B450418DD6E0611A3E4CF48");

// con.addRequestProperty("Referer", "http://t.dianping.com/register");

// con.setConnectTimeout(5000);

// con.setRequestMethod("GET");

//

// if (con.getResponseCode() == 200){

// InputStream inputStr = con.getInputStream();

// String info = new String(StreamTool.read(inputStr), "UTF-8");

// Log.i(tag, Thread.currentThread().getName() + info);

// }

// } 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();

// }

//

//

// }

@Override

public String call() throws Exception {

Log.i(tag, Thread.currentThread().getName() + "......start");

String newpath = "http://dianping.com/ajax/json/account/reg/mobile/send?m=" + phone + "&flow=t&callback=DP._JSONPRequest._5";

StringBuilder strBui = new StringBuilder(newpath);

try {

URL url = new URL(strBui.toString());

HttpURLConnection con = (HttpURLConnection) url.openConnection();

con.addRequestProperty("Content-Type", "text/html; charset=UTF-8");

con.addRequestProperty(

"User-Agent",

"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36");

con.addRequestProperty("Cookie", "_hc.v=\"\\\"0ffcdf91-a4d6-4b08-8800-3d59d2e2fe45.1413899372\\\"\"; abtest=\"48,124\\|52,133\\|47,122\\|44,106\\|45,115\"; __utma=1.29319792.1412090870.1413609669.1413645970.5; __utmz=1.1413645970.5.2.utmcsr=t.dianping.com|utmccn=(referral)|utmcmd=referral|utmcct=/xian; _tr.u=7dhY0yFhd9rY065F; tc=17; cy=17; cye=xian; t_rct=2172824|2171729|6457678; PHOENIX_ID=0a01743f-1492e1321c8-46e6a; 13.t=17deda7d2a7d8e46d84bf12a74627b72; 13.ts=cd3bd6495620e2a204912c4bdfd43220; thirdtoken=891671FC6B450418DD6E0611A3E4CF48; _hc.v=\"\\\"1bdad871-405e-46e3-97d6-46571ad48e14.1413897928\\\"\"; _tr.s=Zy1Ca2OAe1ptv06o; JSESSIONID=891671FC6B450418DD6E0611A3E4CF48");

con.addRequestProperty("Referer", "http://t.dianping.com/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> results = new ArrayList>();

for(int i = 0; i < num; i++)

results.add(exec.submit(selectThread(telnumber)));

for (Future 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;

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:2016年最热门的15 款代码语法高亮工具,美化你的代码
下一篇:在WordPress中加入Google搜索功能的简单步骤讲解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~