jake1036
導航
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
<
2025年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
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
1
2
3
4
5
統(tǒng)計
隨筆 - 19
文章 - 0
評論 - 10
引用 - 0
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
給我留言
查看公開留言
查看私人留言
隨筆檔案
2010年11月 (1)
2010年9月 (1)
2010年8月 (1)
2010年7月 (9)
搜索
最新評論
1.?re: java UDP 操作
<font size=4>寫的不錯!</font>
--o
2.?re: java socket連接池
是不是可以在建立一個連接池,比如5個連接到服務器的連接,客戶端在需要連接的時候,由服務器發(fā)給它一個可用的連接
--songxin
3.?re: java socket連接池
@yackl
請問下,有沒大概或者簡單點的解決辦法了?
--songxin
4.?re: java socket連接池
這個連接池沒什么大的作用啊。
服務器端是在接收到客戶端的請求之后起一個線程處理的,
你只能說你有5個線程等待處理socket請求。
--songxin
5.?re: java socket連接池[未登錄]
垃圾
--aaa
閱讀排行榜
1.?java socket連接池(5318)
2.?java socket非阻塞I/O(4502)
3.?java日期控件(2434)
4.?java UDP 操作(2382)
5.?利用回調函數(shù)在線程和主類中傳遞信息(795)
評論排行榜
1.?java socket連接池(9)
2.?java UDP 操作(1)
3.?java日期控件(0)
4.?java被隱藏的指針(0)
5.?java socket非阻塞I/O(0)
2010年11月2日
java日期控件
摘要: 用java實現(xiàn)的日期,精確到分秒
閱讀全文
posted @
2010-11-02 14:59
buptduming 閱讀(2434) |
評論 (0)
|
編輯
收藏
2010年9月7日
java被隱藏的指針
摘要: java中的指針思想
閱讀全文
posted @
2010-09-07 21:21
buptduming 閱讀(327) |
評論 (0)
|
編輯
收藏
2010年8月1日
java socket非阻塞I/O
摘要: java 異步socket
閱讀全文
posted @
2010-08-01 21:19
buptduming 閱讀(4502) |
評論 (0)
|
編輯
收藏
2010年7月20日
java UDP 操作
摘要: 介紹了java 中UDP 傳遞消息
閱讀全文
posted @
2010-07-20 21:19
buptduming 閱讀(2382) |
評論 (1)
|
編輯
收藏
2010年7月16日
java socket連接池
摘要: java實現(xiàn)了socket連接池
閱讀全文
posted @
2010-07-16 22:37
buptduming 閱讀(5318) |
評論 (9)
|
編輯
收藏
2010年7月14日
java線程池的概念
摘要: 使用java創(chuàng)建線程池
閱讀全文
posted @
2010-07-14 21:08
buptduming 閱讀(517) |
評論 (0)
|
編輯
收藏
回調對象列表方式來實現(xiàn)線程和主類之間的交互
摘要: 接口列表實現(xiàn) 線程與主類的交互。
閱讀全文
posted @
2010-07-14 15:06
buptduming 閱讀(265) |
評論 (0)
|
編輯
收藏
使用回調實例方法進行線程與主類的交互
一 概述
在上一篇隨筆中使用的是靜態(tài)回調函數(shù),故Thread類中沒有主類的實例對象。
但是如果調用主類的實例方法,那么在線程類中就需要有主類的實例對象, 這個實例對象一般是通過線程類的構造函數(shù)中的參數(shù)傳遞的。
二 代碼
和上一篇隨筆代碼相似,只是在線程類中增加了一個主類 的一個實例變量,通過該實例來調用主類的實例函數(shù)。
1 線程類
成員變量中增加一個主類的成員變量callBack。
1
package
cn.bupt.thread;
2
3
import
java.io.
*
;
4
import
java.security.DigestInputStream;
5
import
java.security.MessageDigest;
6
import
java.security.NoSuchAlgorithmException;
7
8
import
cn.bupt.test.CallbackDigestUserInterface;
9
10
public
class
ThreadDemo
implements
Runnable
{
11
12
private
File input ;
13
private
byte
[] digest ;
14
private
CallbackDigestUserInterface callBack ;
15
public
ThreadDemo(File input , CallbackDigestUserInterface callBack)
16
{
17
this
.input
=
input ;
18
this
.callBack
=
callBack ;
19
}
20
21
public
byte
[] getDigest()
22
{
23
return
digest ;
24
}
25
26
27
@Override
28
public
void
run()
{
29
30
try
{
31
FileInputStream in
=
new
FileInputStream(input) ;
32
MessageDigest sha
=
MessageDigest.getInstance(
"
SHA
"
) ;
33
DigestInputStream din
=
new
DigestInputStream(in , sha) ;
34
35
int
b ;
36
37
while
((b
=
din.read())
!=
-
1
) ;
38
din.close() ;
39
40
digest
=
sha.digest() ;
41
42
callBack.receiveDigest(digest, input.getName()) ;
43
44
}
catch
(FileNotFoundException e)
{
45
//
TODO Auto-generated catch block
46
e.printStackTrace();
47
}
catch
(NoSuchAlgorithmException e)
{
48
//
TODO Auto-generated catch block
49
e.printStackTrace();
50
}
catch
(IOException e)
{
51
//
TODO Auto-generated catch block
52
e.printStackTrace();
53
}
54
55
56
57
58
}
59
60
61
62
}
63
2 主類
主類通過線程類的構造函數(shù)將 自身對象傳遞進去 。
package
cn.bupt.test;
import
java.io.File;
import
cn.bupt.thread.ThreadDemo;
public
class
CallbackDigestUserInterface
{
public
void
receiveDigest(
byte
[] digest , String name)
{
StringBuffer result
=
new
StringBuffer(name) ;
result.append(
"
:
"
) ;
for
(
int
j
=
0
; j
<
digest.length ; j
++
)
{
result.append(digest[j]
+
"
"
) ;
}
System.out.println(
"
result :
"
+
result) ;
}
/** */
/**
*
@param
args
*/
public
static
void
main(String[] args)
{
//
TODO Auto-generated method stub
for
(
int
i
=
0
; i
<
args.length ; i
++
)
{
File f
=
new
File(args[i]) ;
CallbackDigestUserInterface u
=
new
CallbackDigestUserInterface() ;
ThreadDemo td
=
new
ThreadDemo(f , u) ;
Thread t
=
new
Thread(td) ;
t.start() ;
}
}
}
3 優(yōu)點
回調機制可以處理涉及更多的線程,對象和類的更復雜的情況,如果有多個對象關心線程的執(zhí)行結果
那么線程可以保存一個回調函數(shù)列表,某個對象可以通過調用thread類 或者 Runnable 的方法,把自己添加
到列表中,。
如果有多個類的實例關心結果,那么就可以定義一個新的interface ,所有這些類都應該實現(xiàn)這個新的接口,
posted @
2010-07-14 14:14
buptduming 閱讀(265) |
評論 (0)
|
編輯
收藏
使用回調實例方法進行線程與主類的交互
摘要: 使用回調實例方法進行線程與主類的交互
閱讀全文
posted @
2010-07-14 14:14
buptduming 閱讀(275) |
評論 (0)
|
編輯
收藏
利用回調函數(shù)在線程和主類中傳遞信息
摘要: 回調函數(shù)實現(xiàn)線程類和主類之間的數(shù)據(jù)交互
閱讀全文
posted @
2010-07-14 11:28
buptduming 閱讀(795) |
評論 (0)
|
編輯
收藏
僅列出標題
下一頁
Powered by:
BlogJava
Copyright © buptduming
主站蜘蛛池模板:
桂东县
|
达尔
|
南开区
|
如东县
|
榆林市
|
资溪县
|
金阳县
|
清河县
|
高阳县
|
舒城县
|
安图县
|
阳谷县
|
涟水县
|
乐安县
|
连云港市
|
萝北县
|
大城县
|
阜新
|
筠连县
|
兴宁市
|
徐州市
|
达拉特旗
|
东光县
|
璧山县
|
晋中市
|
万州区
|
沁源县
|
阳东县
|
中超
|
商丘市
|
天峻县
|
甘南县
|
邵武市
|
汉源县
|
拜城县
|
泽州县
|
卢龙县
|
武川县
|
凉城县
|
乌兰浩特市
|
仁怀市
|