Cyh的博客
Email:kissyan4916@163.com
posts - 26, comments - 19, trackbacks - 0, articles - 220
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
公告
一直努力努力努力,像奴隸奴隸奴隸!~~
<
2025年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
隨筆檔案
(25)
2011年5月 (1)
2010年4月 (12)
2010年1月 (1)
2009年12月 (2)
2009年6月 (1)
2009年4月 (4)
2009年2月 (4)
文章分類
(219)
Android(26)
DB(5)
J2EE(31)
J2SE(79)
JavaScript(15)
others(47)
SOA&Web Service(1)
中間件(1)
軟件工程(12)
軟件架構(2)
文章檔案
(220)
2011年8月 (1)
2010年12月 (23)
2010年11月 (2)
2010年8月 (5)
2010年7月 (2)
2010年6月 (2)
2010年5月 (1)
2010年4月 (12)
2010年3月 (28)
2010年2月 (5)
2010年1月 (23)
2009年12月 (39)
2009年6月 (14)
2009年5月 (31)
2009年3月 (2)
2009年2月 (29)
2009年1月 (1)
新聞檔案
(66)
2010年10月 (1)
2010年9月 (5)
2010年8月 (11)
2010年7月 (21)
2010年6月 (13)
2010年5月 (8)
2010年4月 (5)
2009年11月 (2)
相冊
Ryan
收藏夾
(7)
JAVA(7)
最新隨筆
1.?集成FCKeditor 3.5.3
2.?android自適應屏幕方向和大小
3.?Android游戲開發之旅(二十) 雙按事件捕獲
4.?Android游戲開發之旅(十八) SoundPool類
5.?Android游戲開發之旅(十九) 分辨率大全
6.?Android游戲開發之旅(十七) 圖像漸變特效
7.?Android游戲開發之旅(十六) 異步音樂播放
8.? Android游戲開發之旅(十四) 游戲開發實戰一
9.?Android游戲開發之旅(十五) 按鍵中斷處理
10.?Android游戲開發之旅(十二)Sensor重力感應(2)
搜索
最新評論
1.?re: struts2 checkboxlist標簽的使用
同居同意同意
--yuk
2.?re: struts2 checkboxlist標簽的使用
ss
--d
3.?re: JavaMail(4)--使用POP3接收郵件
郵件信息可以打印出來,可是下載郵件會出錯是什么原因?
--琳喵喵0721
4.?re: JavaMail(4)--使用POP3接收郵件
評論內容較長,點擊標題查看
--流風
5.?re: 操作PDF文件
評論內容較長,點擊標題查看
--ly.wolf
閱讀排行榜
1.?struts2 checkboxlist標簽的使用(18242)
2.?struts2異常攔截器(5868)
3.?struts2迭代標簽(3852)
4.?用freemind 秒殺Spring Security(1925)
5.?加載順序會影響對spring bean 的調用。(1494)
線程--Callable和Future
Posted on 2009-12-21 21:16
啥都寫點
閱讀(1269)
評論(0)
編輯
收藏
所屬分類:
J2SE
Callable是類似于Runnable的接口,實現Callable接口的類和實現Runnable的類都是可被其他線程執行的任務。
Callable和Runnable的區別如下:
Callable定義的方法是call,而Runnable定義的方法是run。
Callable的call方法可以有返回值,而Runnable的run方法不能有返回值。
Callable的call方法可拋出異常,而Runnable的run方法不能拋出異常。
Future表示異步計算的結果,它提供了檢查計算是否完成的方法,以等待計算的完成,并檢索計算的結果。Future的cancel方法取消任務的執行,有一個布爾參數,參數為true表示立即中斷任務的執行,參數為false表示允許正在運行的任務運行完成。Future的get方法等待計算完成,獲取計算結果。
import
java.util.concurrent.Callable;
import
java.util.concurrent.ExecutorService;
import
java.util.concurrent.Executors;
import
java.util.concurrent.Future;
/** */
/**
* Callable 和 Future接口
* Callable是類似于Runnable的接口,實現Callable接口的類和實現Runnable的類都是可被其它線程執行的任務。
* Callable和Runnable有幾點不同:
* (1)Callable規定的方法是call(),而Runnable規定的方法是run().
* (2)Callable的任務執行后可返回值,而Runnable的任務是不能返回值的。
* (3)call()方法可拋出異常,而run()方法是不能拋出異常的。
* (4)運行Callable任務可拿到一個Future對象,
* Future 表示異步計算的結果。它提供了檢查計算是否完成的方法,以等待計算的完成,并檢索計算的結果。
* 通過Future對象可了解任務執行情況,可取消任務的執行,還可獲取任務執行的結果。
*/
public
class
CallableAndFuture
{
/** */
/**
* 自定義一個任務類,實現Callable接口
*/
public
static
class
MyCallableClass
implements
Callable
{
//
標志位
private
int
flag
=
0
;
public
MyCallableClass(
int
flag)
{
this
.flag
=
flag;
}
public
String call()
throws
Exception
{
if
(
this
.flag
==
0
)
{
//
如果flag的值為0,則立即返回
return
"
flag = 0
"
;
}
if
(
this
.flag
==
1
)
{
//
如果flag的值為1,做一個無限循環
try
{
while
(
true
)
{
System.out.println(
"
looping
.
"
);
Thread.sleep(
2000
);
}
}
catch
(InterruptedException e)
{
System.out.println(
"
Interrupted
"
);
}
return
"
false
"
;
}
else
{
//
falg不為0或者1,則拋出異常
throw
new
Exception(
"
Bad flag value!
"
);
}
}
}
public
static
void
main(String[] args)
{
//
定義3個Callable類型的任務
MyCallableClass task1
=
new
MyCallableClass(
0
);
MyCallableClass task2
=
new
MyCallableClass(
1
);
MyCallableClass task3
=
new
MyCallableClass(
2
);
//
創建一個執行任務的服務
ExecutorService es
=
Executors.newFixedThreadPool(
3
);
try
{
//
提交并執行任務,任務啟動時返回了一個Future對象,
//
如果想得到任務執行的結果或者是異常可對這個Future對象進行操作
Future future1
=
es.submit(task1);
//
獲得第一個任務的結果,如果調用get方法,當前線程會等待任務執行完畢后才往下執行
System.out.println(
"
task1:
"
+
future1.get());
Future future2
=
es.submit(task2);
//
等待5秒后,再停止第二個任務。因為第二個任務進行的是無限循環
Thread.sleep(
5000
);
System.out.println(
"
task2 cancel:
"
+
future2.cancel(
true
));
//
獲取第三個任務的輸出,因為執行第三個任務會引起異常
//
所以下面的語句將引起異常的拋出
Future future3
=
es.submit(task3);
System.out.println(
"
task3:
"
+
future3.get());
}
catch
(Exception e)
{
System.out.println(e.toString());
}
//
停止任務執行服務
es.shutdownNow();
}
}
--
學海無涯
Powered by:
BlogJava
Copyright © 啥都寫點
主站蜘蛛池模板:
无人在线观看完整免费版视频
|
免费人成黄页在线观看日本
|
西西大胆无码视频免费
|
亚洲av最新在线网址
|
毛片在线全部免费观看
|
久热综合在线亚洲精品
|
免费精品99久久国产综合精品
|
国产V亚洲V天堂A无码
|
免费av片在线观看网站
|
亚洲AV区无码字幕中文色
|
波多野结衣免费一区视频
|
国产精品高清视亚洲一区二区
|
亚洲免费福利视频
|
性xxxx黑人与亚洲
|
国产精品va无码免费麻豆
|
免费人成网站永久
|
亚洲一区AV无码少妇电影☆
|
3344在线看片免费
|
亚洲国产综合在线
|
日韩电影免费在线观看视频
|
免费观看四虎精品成人
|
国产精品久久久亚洲
|
**真实毛片免费观看
|
亚洲va中文字幕
|
国产成人精品日本亚洲专区61
|
香港a毛片免费观看
|
最新亚洲精品国偷自产在线
|
波多野结衣视频在线免费观看
|
一个人免费观看视频在线中文
|
免费可以看黄的视频s色
|
亚洲中文字幕久久无码
|
免费a级毛片永久免费
|
成人久久免费网站
|
亚洲中文无码亚洲人成影院
|
又爽又高潮的BB视频免费看
|
亚洲天堂男人影院
|
国产精品xxxx国产喷水亚洲国产精品无码久久一区
|
亚洲乱码中文字幕手机在线
|
99国产精品免费视频观看
|
亚洲日韩精品国产一区二区三区
|
久久亚洲精品国产亚洲老地址
|