使用Future模式完成耗時的背景作業[JDK1.5 Concurrency]
個人理解
Future
模式就是在主線程中當需要進行比較耗時的作業,但不想阻塞主線程的作業時,將耗時作業交由
Future
對象在后臺中完成,當主線程將來(這個
Future
的意義也就體現在這里了)需要時即可通過
Future
對象獲得已經作業對象。
這里寫了一個簡單的例子來說明這種模式,其實寫這個例子主要是自己想熟悉一下 JDK5 的 concurrency 包中 FutureTask 的用法了。例子模擬的是一個會計算賬的過程,主線程中已經獲得其他帳戶的總額了,為了不讓主線程等待 PrivateAccount 返回而啟用新的線程去處理,并使用 FutureTask 對象來監控,最后需要計算總額的時候再嘗試去獲得 PrivateAccount 的信息。
代碼如下:

?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



32

33



34

35

36

37

38

39



40

41



42

43



44

45

46

47

48

49

50

51

52



53

54

55

56

57



58

59

60

61

62

63

64

65

主線程獲得了返回后即完成了總額的計算。
posted on 2007-11-01 13:11 benchensz 閱讀(4421) 評論(8) 編輯 收藏 所屬分類: 隨便寫寫(比較有用,值得看看)