作者H45 (!H45)
站内java
标题Re: [问题] thread问题!!!
时间Tue Jun 24 17:03:50 2008
※ 引述《king08 (糊涂蛋)》之铭言:
: ※ 引述《H45 (!H45)》之铭言:
: : Future Pattern:
: : http://caterpillar.onlyfun.net/Gossip/DesignPattern/FuturePattern.htm
: : 把该变数宣告在需要他的物件能够取得的地方即可。
: : 如果您不熟 Future Pattern, 上面的连结所描述的内容可能太过於简略
: : 请试着用 Google 找以下的关键字:Lecture 10: Java Threads Programming 3
: : 我稍微看了一下,内容有比较详细一点,参考看看是否适用於您的应用吧。
: 在Java 5.0中你可以用Future这个Interface
: 相关说明:
: http://doc.java.sun.com/DocWeb/api/java.util.concurrent.Future%3CV%3E
我稍微研究了一下 java.util.concurrent 之中与 Future 有关的类别与介面
消化之後利用 Future, FutureTask, Executor 写出一个范例去计算 1+2+...+10000
public static void main(String[] args) throws Exception {
// 建立未来物件,这个东西是未来会运算完毕并且回传一个物件的。
// 此例是回传一个 Integer 物件。
FutureTask<Integer> future = new FutureTask<Integer>(
new Callable<Integer>() {
public Integer call() {
// count = 0+1+2+...+10000
int count = 0;
for (int i = 0; i < 10000; i++) {
count += i;
}
return count;
}
});
// 建立单执行绪去处理掉这个未来物件
Executors.newSingleThreadExecutor().execute(future);
// 处理中
System.out.println("Executing...");
// 等待未来物件建立完毕,并且将结果取出来
System.out.println(future.get());
// 结束
System.exit(0);
}
写完之後的心得是
如果有时间的话,不妨学习一下怎麽使用 java.util.concurrent.*
这是不错的经验,因为学会之後就不用自己去实作 Future Pattern 了,真省功!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.247.13
1F:推 willieliao:敝公司还在1.4...这个pattern实务上gui经常用 06/25 13:15