Re: [問題] 父親要怎麼被子thread叫醒?
: 我想,你必須釐清你是應該用 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
討論串 (同標題文章)