作者batista5566 (炸弹摔5566)
看板AndroidDev
标题[问题] 多执行绪(多线程)中数值的传递
时间Fri May 31 21:57:57 2013
请教各位,
如果我有一个执行绪A(thread),会在其run()中持续计算出一个数值,
而同时我有另一个执行绪B(runnable),跟A要是并行的执行绪(不并行,B会拖累A),
我想在B中,持续利用A计算出的数值,
如果A执行绪结束,B也不会对A的计算数值做利用。
因此我想请教各位,A的数值该用甚麽方法传给B?
p.s.
两个执行绪都在同一个java档中,而该档案并非Activity,
因为我学Android的时间不长,都是看网路资料,
只是这个地方我找不到有人讨论,所以又上来请教各位高手,谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.124.43.36
※ 编辑: batista5566 来自: 140.124.43.36 (05/31 21:59)
1F:推 givemepass:这让我想到有一本书的例子 它是写龟兔赛跑 05/31 22:13
2F:→ givemepass:龟跟兔是独立的执行绪 然後互相去读对方跑到终点没 05/31 22:14
3F:→ givemepass:如果其中一个跑到终点 就结束读取 05/31 22:15
4F:推 givemepass:它是透过PipedInputStream跟PipedOutputStream在传送 05/31 22:20
5F:→ givemepass:晚点我把程式码贴上来 05/31 22:21
6F:→ batista5566:谢谢 05/31 22:25
7F:→ givemepass:我要睡了 明天再贴:D 你可以先研究看看 05/31 22:26
8F:→ batista5566:嗯 05/31 22:30
我想问一下,这样的方法,会不会在相互等待时,
因为某一方执行绪数据计算量大时,会造成另一方的计算延迟?
谢谢@@"
p.s.:
因为看到这篇文章而感
http://sevensavants.blogspot.tw/2012/12/androidjava.html
※ 编辑: batista5566 来自: 140.124.43.36 (05/31 23:11)
9F:→ Killercat:deleglate 做完一次就通知一次b 不过要注意thread safe 05/31 23:31
10F:→ jerrysky:A extends observable B 用 observer 去收通知 06/01 00:11
11F:→ Killercat:我还是比较推delegate 因为observable没那麽直观好维护 06/01 00:38
12F:→ Killercat:虽然两者做的事情基本上是100%一样的 06/01 00:38
13F:推 exoduschi:在B那加一个queue B非同步等queue A有结果pass到B 06/01 02:22
14F:→ exoduschi:passing messages by main thread is better! 06/01 02:23
15F:→ janice001:能不能宣告一个资料物件让ab一起去存取?这样不用等 06/01 14:25
16F:→ janice001:a消失之前放个标记 b看到就不拿资料 这样 06/01 14:26