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)
線程--CountDownLatch
Posted on 2009-12-23 23:20
啥都寫點
閱讀(464)
評論(0)
編輯
收藏
所屬分類:
J2SE
本例介紹第二種同步裝置:CountDownLatch,它維護一個計數器,等待這個CountDownLatch的線程必須等到計數器為0時才可以繼續。本例模擬服務器的啟動,假設啟動一個服務器需要初始化3個組件,當3個組件初始化完畢時,服務器才算成功啟動。
構造CountDownLatch對象時,需要制定計數器的初始值,該值必須大于等于0,一旦對象被創建,其初始值將不能被改變。
CountDownLatch的await方法使當前線程進入等待狀態,直到計數器為0.
CountDownLatch的countDown方法使計數器減1.
import
java.util.concurrent.CountDownLatch;
import
java.util.concurrent.ExecutorService;
import
java.util.concurrent.Executors;
/** */
/**
* CountDownLatch是個計數器,它有一個初始數,
* 等待這個計數器的線程必須等到計數器倒數到零時才可繼續。
*/
public
class
CountDownLatchTest
{
/** */
/**
* 初始化組件的線程
*/
public
static
class
ComponentThread
implements
Runnable
{
//
計數器
CountDownLatch latch;
//
組件ID
int
ID;
//
構造方法
public
ComponentThread(CountDownLatch latch,
int
ID)
{
this
.latch
=
latch;
this
.ID
=
ID;
}
public
void
run()
{
//
初始化組件
System.out.println(
"
Initializing component
"
+
ID);
try
{
Thread.sleep(
500
*
ID);
}
catch
(InterruptedException e)
{
}
System.out.println(
"
Component
"
+
ID
+
"
initialized!
"
);
//
將計數器減一
latch.countDown();
}
}
/** */
/**
* 啟動服務器
*/
public
static
void
startServer()
throws
Exception
{
System.out.println(
"
Server is starting.
"
);
//
初始化一個初始值為3的CountDownLatch
CountDownLatch latch
=
new
CountDownLatch(
3
);
//
起3個線程分別去啟動3個組件
ExecutorService service
=
Executors.newCachedThreadPool();
service.submit(
new
ComponentThread(latch,
1
));
service.submit(
new
ComponentThread(latch,
2
));
service.submit(
new
ComponentThread(latch,
3
));
service.shutdown();
//
等待3個組件的初始化工作都完成
latch.await();
//
當所需的三個組件都完成時,Server就可繼續了
System.out.println(
"
Server is up!
"
);
}
public
static
void
main(String[] args)
throws
Exception
{
CountDownLatchTest.startServer();
}
}
--
學海無涯
Powered by:
BlogJava
Copyright © 啥都寫點
主站蜘蛛池模板:
波多野结衣在线免费观看
|
两个人www免费高清视频
|
四虎在线最新永久免费
|
久久国产亚洲观看
|
波多野结衣免费一区视频
|
亚洲精品无码久久久久去q
|
巨胸喷奶水视频www免费视频
|
亚洲精品第一国产综合精品99
|
免费的黄色网页在线免费观看
|
免费不卡中文字幕在线
|
免费看又黄又爽又猛的视频软件
|
亚洲国产精品成人网址天堂
|
www.av在线免费观看
|
亚洲无码在线播放
|
免费看少妇高潮成人片
|
亚洲尹人九九大色香蕉网站
|
99国产精品永久免费视频
|
亚洲AV成人一区二区三区在线看
|
69成人免费视频无码专区
|
精品国产亚洲一区二区三区在线观看
|
亚洲一级特黄特黄的大片
|
我想看一级毛片免费的
|
婷婷亚洲综合一区二区
|
亚洲成A人片777777
|
一级毛片免费播放
|
亚洲一级片在线播放
|
四虎永久在线免费观看
|
a级特黄毛片免费观看
|
久久久久亚洲av无码专区
|
亚洲?v无码国产在丝袜线观看
|
国产精品福利片免费看
|
亚洲精品视频在线
|
免费无码黄网站在线观看
|
国产精品青草视频免费播放
|
久久精品a亚洲国产v高清不卡
|
亚洲91精品麻豆国产系列在线
|
国产成人免费全部网站
|
97人妻精品全国免费视频
|
亚洲色欲色欲www
|
自拍偷自拍亚洲精品被多人伦好爽
|
97在线视频免费公开观看
|