Re: [問題] java的exception
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 5 篇):