検索

ホームページ  >  に質問  >  本文

object-c - @property のアトミック キーワードの理解についていくつか質問したいと思います。

1. マルチスレッドの安全性を学ぶとき、複数のスレッドが同時に実行されるときに、同じリソースへの「同時」アクセスを避けるために同期ロックを使用することを学びました。以前アトミックを学習していたときに、このキーワードはプロパティがスレッドセーフかどうかを設定するために使用されることを思い出しました。そこで、プログラムで同期ロックをオフにし、上記のキーワードを使用してプロパティを定義しましたが、マルチスレッド操作を実行した後、この設定ではスレッド セーフが実現されないことがわかりました。 私の理解のどこが間違っているのか聞いてもいいですか?

私のプログラムコードは次のとおりです:

リーリー

以下は出力の一部です: 2 つの 98 が出力されることに注意してください

リーリー
大家讲道理大家讲道理2811日前599

全員に返信(2)返信します

  • 高洛峰

    高洛峰2017-05-02 09:31:14

    _totalTicket-- は、次のように setter getter メソッドを介さずにインスタンス変数を直接操作し、属性にアトミック属性を追加します。これは、スレッドの安全性を確保するために属性の読み書き時にロックされます # 🎜🎜# リーリー

    したがって、アクセスするには . 構文を使用する必要があります。ただし、アトミックは完全にスレッドセーフというわけではありません

    関連情報

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-02 09:31:14

    ああ。ご回答ありがとうございます。このアトミックはちょっと物足りない気がします。よく見てますよ。ありがとう!

    返事
    0
  • キャンセル返事