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 © 啥都寫點
主站蜘蛛池模板:
精品无码AV无码免费专区
|
免费一级毛片在线播放视频免费观看永久
|
一级毛片免费毛片毛片
|
gogo全球高清大胆亚洲
|
国产亚洲福利一区二区免费看
|
永久黄网站色视频免费观看
|
亚洲AV无码国产一区二区三区
|
日韩免费电影在线观看
|
亚洲av无码一区二区三区人妖
|
国产大片91精品免费看3
|
污污视频免费观看网站
|
亚洲国产综合精品一区在线播放
|
最近免费中文字幕视频高清在线看
|
亚洲同性男gay网站在线观看
|
午夜网站免费版在线观看
|
亚洲AV无码国产剧情
|
亚洲国产av无码精品
|
三年片免费高清版
|
免费一级做a爰片久久毛片潮喷
|
911精品国产亚洲日本美国韩国
|
女同免费毛片在线播放
|
久久亚洲国产欧洲精品一
|
中文字幕在线观看免费视频
|
亚洲乱码在线观看
|
亚洲国产成人久久精品99
|
野花香高清视频在线观看免费
|
综合自拍亚洲综合图不卡区
|
成年女人18级毛片毛片免费观看
|
特级毛片aaaa级毛片免费
|
亚洲AV中文无码乱人伦下载
|
国产va精品免费观看
|
免费精品国产自产拍在线观看
|
国产亚洲综合久久系列
|
国产麻豆视频免费观看
|
91成人免费观看在线观看
|
亚洲经典在线观看
|
亚洲精品tv久久久久久久久久
|
日本免费高清视频
|
国产亚洲精品AAAA片APP
|
精品亚洲综合在线第一区
|
色婷婷7777免费视频在线观看
|