作者workworkwork (专心K书?)
看板java
标题Re: [问题] 父亲要怎麽被子thread叫醒?
时间Sun Jul 29 14:17:32 2007
: 我想,你必须厘清你是应该用 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