Cyh的博客
Email:kissyan4916@163.com
posts - 26, comments - 19, trackbacks - 0, articles - 220
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
公告
一直努力努力努力,像奴隸奴隸奴隸!~~
<
2025年5月
>
日
一
二
三
四
五
六
27
28
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
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
隨筆檔案
(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標簽的使用(18234)
2.?struts2異常攔截器(5862)
3.?struts2迭代標簽(3847)
4.?用freemind 秒殺Spring Security(1920)
5.?加載順序會影響對spring bean 的調用。(1491)
線程--Callable和Future
Posted on 2009-12-21 21:16
啥都寫點
閱讀(1264)
評論(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人片天堂网无码
|
国产精品深夜福利免费观看
|
亚洲一区爱区精品无码
|
亚洲六月丁香婷婷综合
|
色哟哟国产精品免费观看
|
57PAO成人国产永久免费视频
|
亚洲午夜精品一级在线播放放
|
亚洲国产成人在线视频
|
一级成人生活片免费看
|
我想看一级毛片免费的
|
亚洲AV第一页国产精品
|
日韩毛片一区视频免费
|
久久久久国色AV免费观看性色
|
国产亚洲人成A在线V网站
|
亚洲精品GV天堂无码男同
|
91精品国产免费入口
|
亚洲色中文字幕无码AV
|
久久成人无码国产免费播放
|
超清首页国产亚洲丝袜
|
在线观看免费播放av片
|
亚洲日韩VA无码中文字幕
|
国产一级一毛免费黄片
|
亚洲区小说区图片区
|
色噜噜的亚洲男人的天堂
|
成人毛片18女人毛片免费视频未
|
亚洲A∨精品一区二区三区下载
|
91青青国产在线观看免费
|
亚洲一线产区二线产区精华
|
99爱在线观看免费完整版
|
亚洲国产一成人久久精品
|
国产免费伦精品一区二区三区
|
亚洲精品国产高清不卡在线
|
在线观看黄片免费入口不卡
|
亚洲精品和日本精品
|
91精品手机国产免费
|
粉色视频免费入口
|
亚洲av午夜成人片精品电影
|
色欲aⅴ亚洲情无码AV
|
国产亚洲婷婷香蕉久久精品
|
日韩版码免费福利视频
|