Re: [問題] 父親要怎麼被子thread叫醒?

看板java作者 (專心K書?)時間18年前 (2007/07/29 14:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
: 我想,你必須釐清你是應該用 method,或只是為了用 thread 而 thread... : 若是 thread.... : 你的 B 物件(子)要有訊息給 A (父),再怎樣也要中間有可以溝通的物件, : 也就是將被 B 所改變的值,或是 B 所執行的某個階段的 flag 在改變後讓 : A 能取得。注意! 這是你要在 B Thread 尚未執行結束或是執行某個定點時 : 讓 A 由 sleep 恢復為 active 的做法。 : 若你要的只是 B Thread 結束之後才繼續執行 A ,哪麼直接用 join 就好了。 : 如果你用的是 join,就意義上來說,你的需求與呼叫一個 B method 沒有多 : 大的差異(如果你只有一個子Thread),用 method 其實比較實際些。 : 回頭看看現實面,你要等待一個 Thread 結束,是人工來控制比較好,或是 : 採用 join 其實見仁見智,但有時候你會發現,用 join 並不那麼的理想。 : 譬如要在 Midlet 中使用 HttpConnection,許多手機或模擬器會出現詢問畫 : 面,要你確認是否接受付費連線,而 HttpConnection 合法的使用方式是另 : 開一個 thread 來使用,但詢問畫面卻是由 Midlet 的主 Thread 來控制, : 想當然爾,若你使用了join,整隻程式就會陷入 dead lock。 : 若這篇能讓你解決問題或是有更好的做法,請記得回來提供你解決方案回饋 : 給大家參考喔! 概念我瞭解了~ 先說聲感謝m(_._)m 唯一不瞭解的二點是~ 1. 如何由A SLEEP? 是要用super.wait();嗎@@? 但他一直說current thread not owner 我先說一下我整個程式的架構吧~ 我是由最先的main來史瑞德(thread)二個.....東東?不知用什麼計量單位Orz~ 然後一個來接收網路訊息~(A) 另一個來讓使用者操作~(B) 而B可能會再史瑞德一個子視窗讓使用者操作~ 所以我想SLEEP的人是B~ (好像很複雜Orz) 2. 什麼叫method? 我爬過上面的文和精華區都沒有解釋.... SORRY~我是新手Orz~ 現在在寫的是專題的程式~ 之前原本一直想用C的(畢竟寫了3年)~ 但組員一直說要用JAVA~ (JAVA我只寫過4支程式而已Orz) 所以我只有OO的概念沒有JAVA的概念.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.228.157.98
文章代碼(AID): #16h33z_z (java)
討論串 (同標題文章)
文章代碼(AID): #16h33z_z (java)