日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Callable的简单使用

發布時間:2025/5/22 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Callable的简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說起java的線程操作,都會想到Thread和Runable這兩個, 這兩個類可以實現異步和同步. 在大多數的java開發中, 這兩個都是實現異步的線程來使用,

但是現在考慮一種情況: 發出一條線程, 但是得等待這條線程返回結果后, 我們再去發另一個線程. (讀者肯定會想到用線程的同步機制做處理)?

下面介紹Callable的使用, 也是最近一段時間才學到的新技能, 在這里記錄一下。(我的理解就是: Callable是串聯級別的線程)

簡單介紹一下Callable:

1. Callable和Runnbale一樣代表著任務,區別在于Callable有返回值并且可以拋出異常

2.?Future是一個接口,代表了一個異步計算的結果(下面代碼看什么是Future)。接口中的方法用來檢查計算是否完成、等待完成和得到計算的結果。當計算完成后,只能通過get()方法得到結果,get方法會阻塞直到結果準備好了。如果想取消,那么調用cancel()方法。其他方法用于確定任務是正常完成還是取消了。一旦計算完成了,那么這個計算就不能被取消

package testJava;import java.io.DataOutputStream; import java.net.ConnectException; import java.net.HttpURLConnection; import java.net.URL; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future;public class CallableTest {final int ThreadPoolSize = 30;ExecutorService executorService;
  // 在外面只要調用sendRequest()這個方法就可以了
public boolean sendRequest() {boolean result =false;try {executorService = Executors.newFixedThreadPool(ThreadPoolSize);
       // 這里就是調用Callable的使用方法, 用get得到返回的結果 Future tvFuture
= executorService.submit(new TestCallable("192.168.0.11", 80));result = (boolean) tvFuture.get(); } catch (Exception e) {System.out.println(e.getMessage());}return result;}class TestCallable implements Callable {private String ip;private int port;public TestCallable(String ip, int port){this.ip = ip;this.port = port;}@Overridepublic Object call() throws Exception {// TODO Auto-generated method stubreturn testCall(ip, port);} }private boolean testCall(String ip, int port) {boolean result = false;try {URL url = new URL("http://" + ip + ":" + port + "/WIXP");String data = "testData";HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("POST");connection.setConnectTimeout(20*1000);connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");connection.setRequestProperty("Content-Length", ""+ Integer.toString(data.getBytes().length));connection.setRequestProperty("Content-Language", "en-US");connection.setUseCaches(false);connection.setDoInput(true);connection.setDoOutput(true);try (DataOutputStream wr = new DataOutputStream(connection.getOutputStream());) {wr.writeBytes(data);wr.flush();} catch (ConnectException e) {System.out.println(e.getMessage());} catch (Exception e) {System.out.println(e.getMessage());}if (connection.getResponseCode() == 200) { result = true;}} catch (Exception e) {System.out.println(e.getMessage());}return result;}}

?

轉載于:https://www.cnblogs.com/xumBlog/p/9499292.html

總結

以上是生活随笔為你收集整理的Callable的简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色免费在线观看网站 | 亚洲第一自拍 | 国产精品亚洲天堂 | 一级黄色性生活视频 | 日本在线不卡一区二区三区 | 91久久综合精品国产丝袜蜜芽 | 精品人妻少妇AV无码专区 | 天天碰天天干 | 欧美性生活一区 | 蜜桃久久久久久 | 综合网五月| 一区二区三区人妻 | 成在人线av | 深爱激情五月婷婷 | 黄色av大片| 成人在线视频免费 | 调教女m荡骚贱淫故事 | 夜夜草网 | 成人在线观看av | 麻豆精品自拍 | 国产亚洲欧美日韩高清 | 黄色片一区二区三区 | 小伸进喷水网站 | 成人福利在线看 | 欧美一区二区在线 | 国产综合福利 | 囯产精品一品二区三区 | 日韩免费一级片 | 欧美整片在线 | 成人无码一区二区三区 | 特级一级片 | 91午夜视频| www.色哟哟| 中文人妻一区二区三区 | 在线中文天堂 | 亚洲伊人网站 | 黄色免费观看网站 | 好吊妞这里有精品 | 亚洲精品国产日韩 | 久久天堂影院 | 国产观看 | 国产亚洲一区二区三区四区 | 亚洲播播 | 伊人色网站| 丰满双乳秘书被老板狂揉捏 | 激情综合六月 | 深爱开心激情 | 久久国产人妻一区二区免色戒电影 | 午夜影院操 | 国产福利一区在线 | 一区二区三区四区在线 | 激情五月综合网 | 日本偷拍一区 | 日韩欧美精品免费 | 99热在线观看 | 欧美国产91 | 国产一级理论片 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 久九九| 狠狠躁天天躁夜夜躁婷婷 | 天堂网在线观看视频 | 欧美综合专区 | 天天插天天操 | 免费看国产黄色 | 成人av一区二区三区 | av在线资源观看 | 国产一区二区三区欧美 | 成人交配视频 | 国产精品xxx在线观看 | 成人黄网免费观看视频 | 亚洲aⅴ| 永久免费视频网站 | 国产精品久久久久久免费免熟 | 国产亚洲成av人在线观看导航 | 国产成人精品亚洲男人的天堂 | 亚洲午夜精品久久久久久app | 高清免费视频日本 | 欧美激情网址 | 91在线国产观看 | 欧美一级片网址 | 成人激情开心网 | 依依av| 神马午夜影院 | 成人特级片 | 亚洲婷婷在线观看 | 人人干人人澡 | 日本欧美在线观看 | 看个毛片 | 色黄网站| 国产夫妻在线视频 | 明日花绮罗高潮无打码 | 中国极品少妇xxxxx | 超黄网站在线观看 | 国产寡妇色xxⅹ交肉视频 | 人人射视频 | 视频二区| 日韩一区二区三区四区五区六区 | h片免费观看 | 中文字幕乱码一区二区 |