作者H45 (!H45)
看板java
标题Re: [问题] java的exception
时间Tue Jun 5 17:18:28 2007
※ 引述《scdog (just do it)》之铭言:
: ※ 引述《H45 (!H45)》之铭言:
: : A.join();
: : B.join();
: : 这个方案如何?
: 我查了一下join function的用法
: 程式码似乎会一直停留在A.join()中直到有回应才会继续往下跑
: 不过我的需求希望A已thread执行下去,不影响主程式
: 直到结束时通知main program他已结束....谢谢!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我想这边需要再说明的清楚一点
main program 自己做自己的事情做的好好的
为什麽需要了解 A 是否已经做完自己的事情了呢?
在 GUI 的处理上,最常见的例子就是「更新画面上的文字」
具体做法像是呼叫: component.setText("完了");
虽然作法看似简单,但是其实这就是「
通知」 GUI 介面说:
我现在需要修改 component 的内容
在 Java 的实作上,有一个叫作 AWT-Thread 的执行绪
它会对所有已排队的「工作」进行批次的处理
也就是说,当我们的元件呼叫了 component.setText("完了"); 的时候
实际上是把这个设定文字为「完了」的工作放至 AWT-Thread 的工作伫列之中
待 AWT-Thread 真的处理到本工作的内容时,整个 component 的文字才真的被更新
而呼叫方有两种方式可以委托 AWT-Thread 帮我们做这件工作
一种是「同步的」,另一种是「非同步的」
当然这会愈扯愈远,先打住不提了
希望以上的延伸讨论能有些帮助?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.205.85