หลังจากดำเนินการบางวิธีด้วยเธรดเธรดคุณต้องพิจารณาว่าการดำเนินการสำเร็จหรือไม่
โมฆะสาธารณะเรียกใช้ () {}
ค่าส่งคืนของวิธีการเรียกใช้ () ว่างเปล่าฉันควรทำอย่างไร?
สารละลาย:
รหัส:
แพ็คเกจ com.example.thread; นำเข้า java.io.ioexception; นำเข้า java.io.inputstream; นำเข้า java.net.httpurlconnection; นำเข้า java.net.malformedurlexception; นำเข้า java.net.url; com.example.streamtool.streamtool; คลาสสาธารณะ Mythread1 ใช้ callable <string> {สตริงสตริงสุดท้ายคงที่ส่วนตัว = "xxxyyy"; โทรศัพท์สตริงส่วนตัว ชื่อสตริงส่วนตัว; Public MyThread1 (ชื่อสตริง, โทรศัพท์สตริง) {this.name = name; this.phone = โทรศัพท์; } // public mythread1 (ชื่อสตริง, โทรศัพท์สตริง) {// super (ชื่อ); // this.phone = phone; //} // public void run () {// log.i (tag, thread.currentthread (). getName () + "...... เริ่มต้น"); "http://www.dianping.com/ajax/json/account/reg/mobile/send?m=" + โทรศัพท์ + "& flow = t & callback = dp._jsonprequest._5"; // stringbuilder strbui = new Stringbuilder url (strbui.toString ()); // httpurlconnection con = (httpurlconnection) url.openconnection (); // con.addrequestproperty ("content-ype", "text/html; charset = utf-8"); "Mozilla/5.0 (Windows NT 6.1) Applewebkit/537.36 (khtml, เช่น Gecko) Chrome/38.0.2125.104 Safari/537.36"); // con.addrequestproperty ("คุกกี้" "_hc.v =/" /// "0FFCDF91-A4D6-4B08-8800-3D59D2E2FE45.1413899372 ////"/"; abtest =/" 48,124 // | 52,133 // | 47,122 // __utma = 1.29319792.1412090870.1413609669.1413645970.5; _tr.u = 7DHY0YFHD9RY065F; 13.T = 17DEDA7D2A7D8E46D84BF12A74627B72; _hc.v =/"///" 1BDAD871-405E-46E3-97D6-46571AD48E14.1413897928 /// "/"; jsessionId = 891671fc6b450418dd6e0611a3e4cf48 "); // con.addrequestproperty (" ผู้อ้างอิง "," http://t.dianping.com/register") (con.getResponsecode () == 200) {// inputStream inputstr = con.getInputStream (); // string info = สตริงใหม่ (streamtool.read (inputstr), "utf-8"); // log.i (แท็ก, thread.currentthread () บล็อกจับที่สร้างขึ้นอัตโนมัติ // e.printstacktrace (); //} catch (ioexception e) {// // // toDo บล็อกจับอัตโนมัติที่สร้างขึ้นอัตโนมัติ // e.printstacktrace (); //} catch (ioexception e) {// // // // // // TODO catch block catch Auto-Generated // e.printStackTrace (); //} // //} @Override การเรียกสตริงสาธารณะ () โยนข้อยกเว้น {log.i (tag, thread.currentthread (). getName () + "...... start"); String newPath = "http://www.dianping.com/ajax/json/account/reg/mobile/send?m=" + โทรศัพท์ + "& flow = t & callback = dp._jsonprequest._5"; StringBuilder strBui = ใหม่ StringBuilder (newPath); ลอง {url url = url ใหม่ (strbui.toString ()); httpurlConnection con = (httpurlconnection) url.openconnection (); con.addrequestProperty ("เนื้อหาประเภท", "ข้อความ/html; charset = utf-8"); Con.addrequestProperty ("ผู้ใช้ตัวแทน", "Mozilla/5.0 (Windows NT 6.1) Applewebkit/537.36 (khtml, เช่น Gecko) Chrome/38.0.2125.104 Safari/537.36"); con.addrequestProperty ("คุกกี้", "_hc.v =/" /// "0FFCDF91-A4D6-4B08-8800-3D59D2E2FE45.1413899372 ///"/"/"; abtest =/"48,124 // | 52,133 // | 47,122 // | 44,106 // | 45,115/"; __UTMZ = 1.1413645970.5.2.UTMCSR = T.Dianping.com | UTMCCN = (การอ้างอิง) | UTMCMD = การอ้างอิง | UTMCCT =/XIAN; T_RCT = 2172824 | 2171729 | 6457678; 13.TS = CD3BD6495620E2A204912C4BDFD43220; _hc.v =/"//" 1BDAD871-405E-46E3-97D6-46571AD48E14.1413897928 //// "/"; JSessionId = 891671FC6B450418DD6E0611A3E4CF48 "); Con.addrequestProperty ("ผู้อ้างอิง", "http://t.dianping.com/register"); Con.setConnectTimeOut (5,000); con.setRequestMethod ("รับ"); ลอย x = 3.4f; if (con.getResponsEcode () == 200) {inputStream inputStRe = con.getInputStream (); สตริงข้อมูล = สตริงใหม่ (streamtool.read (inputstr), "utf-8"); log.i (tag, thread.currentthread (). getName () + ข้อมูล); if (info.contains ("200")) กลับ "200"; }} catch (malformedurlexception e) {// toDo บล็อก catch ที่สร้างโดยอัตโนมัติ e.printstacktrace (); } catch (ioexception e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); } catch (exception e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); } // วิธีการที่สร้างขึ้นอัตโนมัติ todo stub return "404"; - ประมวลผลค่าส่งคืน
ExecutorService exec = executors.newcachedthreadpool (); arrayList <อนาคต <สตริง >> ผลลัพธ์ = new ArrayList <Future <String> (); สำหรับ (int i = 0; i <num; i ++) results.add (exec.submit (selectThread (telnumber))); สำหรับ (อนาคต <string> fs: ผลลัพธ์) ลอง {ถ้า (fs.get (). เท่ากับ ("200")) ความสำเร็จ ++; } catch (interruptedException e) {// toDo บล็อก catch block ที่สร้างขึ้นอัตโนมัติ E.PrintStackTrace (); } catch (ExecutionException E) {// TODO Catch Block Catch Auto-Generated E.PrintStackTrace (); } คืนความสำเร็จ;ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน