java線程的run()沒有返回值怎么辦?
更新時間:2016年01月05日 10:15:19 作者:學習編程知識
java線程的run()沒有返回值怎么辦?本文給出了java線程的run()返回值為空的解決辦法,感興趣的小伙伴們可以參考一下
用線程Thread執(zhí)行一些方法后,需要判斷執(zhí)行是否成功。
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://www.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://www.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<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;
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。
相關(guān)文章
springboot開啟mybatis駝峰命名自動映射的三種方式
這篇文章給大家總結(jié)springboot開啟mybatis駝峰命名自動映射的三種方式,文章并通過代碼示例給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-02-02
JAVA 實現(xiàn)二叉樹(鏈式存儲結(jié)構(gòu))
本篇文章主要介紹用JAVA 實現(xiàn)二叉樹,并提供實例.對二叉樹數(shù)據(jù)結(jié)構(gòu)很好的學習實踐,有需要的朋友可以參考下2016-07-07
java使用泛型實現(xiàn)棧結(jié)構(gòu)示例分享
泛型是Java SE5.0的重要特性,使用泛型編程可以使代碼獲得最大的重用。由于在使用泛型時要指明泛型的具體類型,這樣就避免了類型轉(zhuǎn)換。本實例將使用泛型來實現(xiàn)一個棧結(jié)構(gòu),并對其進行測試2014-03-03
Java 網(wǎng)絡(luò)編程socket編程等詳解
本篇文章主要介紹了java網(wǎng)絡(luò)編程中的類的方法以及實例,需要的朋友可以參考下2017-04-04

