2012-05-08 16 views

答えて

3

それが唯一のこれまでの主から更新されているので、私は、このケースでmydataに特別な何かをする必要があるとは思いません。スレッド(mainThreadはメソッドがしかメインスレッドから呼び出されることを意味と仮定して)これはまた、あなたにもどこからでもmydataを読み込むしようとしているが、メインスレッドされていないと仮定し

さらなる説明:。

concurrentThreadがメインスレッド以外のスレッドで実行されているにもかかわらず、mydata = 77がメインスレッドにディスパッチされるブロックに現れるという事実は、メインスレッド上で、メインスレッドで発生するその変数への他の読み取り/書き込み。したがって、mydataにアクセスするメインスレッド上に他のコードがないと仮定すると、このコードは安全です。

+0

メインスレッドが変数を更新しているときに読み込もうとすると、他のスレッドを** read **ガーベッジに保護しません。 – JustSid

+0

メインスレッド以外の 'mydata'変数に何もしないコードはここにありません。他の場所から変数を読み込んでいるかどうかを前提にしている場合、それは別の話です。 – UIAdam

+0

あなたのビューに 'concurrentThread'とは何ですか? –

関連する問題