インスタンス変数を共有するスレッド

ジョン・ブラック

両方のスレッドで変数を共有したいのですが、実行時に1と2ではなく2を2回出力することがあります。

public class man implements Runnable{

    int value = 0;

    public static void main(String[] args){
        Runnable job = new man();
        Thread work1 = new Thread(job);
        work1.setName("Thread1");
        Thread work2 = new Thread(job);
        work2.setName("Thread2");

        work1.start();
        work2.start();
    }


    public void run(){
        synchronized(this){
            value = value + 1;
        }
        System.out.println("VALUE = " + value +", Running " + Thread.currentThread().getName());
    }



}

出力は次の場合があります。

VALUE = 2, Running Thread2
VALUE = 2, Running Thread1

その他の時間は次のとおりです。

VALUE = 1, Running Thread2
VALUE = 2, Running Thread1

なぜこうなった?私はHeadFirstの本でJavaを学んでいて、この質問が出てきました。

リードコプシー

System.out.println呼び出し内でアクセスを同期していないため、「最初のスレッド」が出力される前に「2番目の」スレッドが増加することがあります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

GAE:スレッドやインスタンス間でコンテキストを共有する方法

分類Dev

スレッド間でトレイトのインスタンスへの参照を共有する

分類Dev

threadpool.executorを使用してスレッド間でカウンター変数を共有し、それをインクリメントする方法は?

分類Dev

共有リストの異なるインデックスを変更する異なるスレッド

分類Dev

データを共有するPython再帰インスタンス変数

分類Dev

可変変数へのポインタをスレッドに共有するにはどうすればよいですか?

分類Dev

インスタンス間でメソッドのローカル静的変数を共有するリスクはありますか?

分類Dev

静的変数を共有するJavaスレッド

分類Dev

スレッド間で変数を共有する方法は?

分類Dev

スレッド間で変数を共有する方法は?

分類Dev

スレッド間で変数を共有する方法は?

分類Dev

JAVAのスレッド間で変数を共有する

分類Dev

スレッド間で変数を共有する方法java

分類Dev

Delphiスレッド間でネイティブ変数を共有する

分類Dev

クラスのインスタンス間で共有するTensorflow変数

分類Dev

NSManagedObject-スレッド間でカスタムインスタンス変数を設定する

分類Dev

HelmDeployのタスク間でパイプライン変数を共有する

分類Dev

類似のインスタンス変数を共有する関数を使用して通信する方法は?

分類Dev

Python-異なるクラスの異なるインスタンス間で変数を共有する

分類Dev

すべてのvueコンポーネントインスタンス間で変数を共有する

分類Dev

Pythonの異なるクラス間でインスタンス変数を共有する方法

分類Dev

Vueのミックスインで共有変数を回避する方法

分類Dev

複数の操作で共有されるインスタンス変数を作成する方法

分類Dev

Pythonの同じクラスのインスタンス間で変数を共有する

分類Dev

Python:スレッド間でクラス変数を共有する

分類Dev

所有権と借用、および複数のスレッド間でのインスタンスの共有に関する問題

分類Dev

複数の異なるスレッド間で変数を共有する

分類Dev

APIスレッドとアプリケーションスレッド間でデータを共有する

分類Dev

共有ミューテックスとクラスインスタンスを持つC ++ 11スレッド

Related 関連記事

  1. 1

    GAE:スレッドやインスタンス間でコンテキストを共有する方法

  2. 2

    スレッド間でトレイトのインスタンスへの参照を共有する

  3. 3

    threadpool.executorを使用してスレッド間でカウンター変数を共有し、それをインクリメントする方法は?

  4. 4

    共有リストの異なるインデックスを変更する異なるスレッド

  5. 5

    データを共有するPython再帰インスタンス変数

  6. 6

    可変変数へのポインタをスレッドに共有するにはどうすればよいですか?

  7. 7

    インスタンス間でメソッドのローカル静的変数を共有するリスクはありますか?

  8. 8

    静的変数を共有するJavaスレッド

  9. 9

    スレッド間で変数を共有する方法は?

  10. 10

    スレッド間で変数を共有する方法は?

  11. 11

    スレッド間で変数を共有する方法は?

  12. 12

    JAVAのスレッド間で変数を共有する

  13. 13

    スレッド間で変数を共有する方法java

  14. 14

    Delphiスレッド間でネイティブ変数を共有する

  15. 15

    クラスのインスタンス間で共有するTensorflow変数

  16. 16

    NSManagedObject-スレッド間でカスタムインスタンス変数を設定する

  17. 17

    HelmDeployのタスク間でパイプライン変数を共有する

  18. 18

    類似のインスタンス変数を共有する関数を使用して通信する方法は?

  19. 19

    Python-異なるクラスの異なるインスタンス間で変数を共有する

  20. 20

    すべてのvueコンポーネントインスタンス間で変数を共有する

  21. 21

    Pythonの異なるクラス間でインスタンス変数を共有する方法

  22. 22

    Vueのミックスインで共有変数を回避する方法

  23. 23

    複数の操作で共有されるインスタンス変数を作成する方法

  24. 24

    Pythonの同じクラスのインスタンス間で変数を共有する

  25. 25

    Python:スレッド間でクラス変数を共有する

  26. 26

    所有権と借用、および複数のスレッド間でのインスタンスの共有に関する問題

  27. 27

    複数の異なるスレッド間で変数を共有する

  28. 28

    APIスレッドとアプリケーションスレッド間でデータを共有する

  29. 29

    共有ミューテックスとクラスインスタンスを持つC ++ 11スレッド

ホットタグ

アーカイブ