グローバル変数であるIntegerクロックを持つクラスがあり、0に初期化されています。スレッドを開始するいくつかのスレッドコンストラクタに 'clock'を渡します。スレッド内で 'clock'の増分が見えるかもしれませんが、呼び出しプロセスでは 'clock'は常に0です。Integerはオブジェクトで、オブジェクトは参照渡しであるため、 'clock'の変更が見られるはずですどこにでも。これは当てはまりませんか?スレッドで参照渡しで整数を渡す
答えて
使用可変であるInteger
のラッパーを作成することです。
int
アトミックに更新される値。原子変数のプロパティの説明については、java.util.concurrent.atomic
パッケージ仕様を参照してください。AtomicInteger
は、アトミックインクリメントカウンタなどのアプリケーションで使用され、Integer
の代わりに使用することはできません。しかし、このクラスはNumber
を拡張して、数値ベースのクラスを扱うツールやユーティリティによって一様にアクセスできるようにします。
私は知らなかった別の図書館が存在しました... –
これはライブラリではありません。これはJava SEの一部です。 –
Integer
は不変オブジェクトです。その値を別のスレッドから変更することはできません。スレッド内で使用するときはfinal
と宣言しなければならないので、変数を再割当てすることはできません。
これを回避する方法はAtomicInteger
代わりのInteger
class MutableInteger {
private int integer;
synchronized void setInteger(int integer) { ... }
synchronized int getInteger() { ... }
}
- 1. 予期せず整数を参照渡しですか?
- 2. 参照渡しと参照渡し
- 3. Pythonで参照渡しで変数を渡す
- 4. コールバックで参照として渡されたC#整数?
- 5. 値渡しと参照渡しJavaScriptで
- 6. std :: thread渡しで参照渡しコピーコンストラクタ
- 7. 参照渡しですか?
- 8. C++スレッドを作成して参照でオブジェクトを渡す
- 9. 値渡し値渡し参照渡し
- 10. は参照で引数を渡すと
- 11. javaで参照渡し?
- 12. 参照でベクトルを渡す
- 13. フォームオブジェクトを参照渡しに渡す
- 14. オブジェクト参照を静的ヘルパーメソッドに渡す複数のスレッド
- 15. 渡す参照
- 16. スレッドとモジュール間の参照でブール値を渡す方法
- 17. CComPtr参照渡し
- 18. ゴランで参照渡しで配列を渡す
- 19. オプションでオブジェクトを参照渡しで渡す
- 20. 参照渡しと値渡し。 C++
- 21. 参照渡しと値渡し
- 22. PHPエクステンションに参照渡し変数を渡す
- 23. 引数を新しいスレッドに渡すときのローカル変数参照とGC
- 24. ポインタへの参照対参照渡し?
- 25. 参照渡しで配列を渡す[Swift 3 Xcode 8]
- 26. Javascriptが参照渡しでオブジェクトを渡す
- 27. パラメータ渡しの参照をjavaで渡す
- 28. ポインタは参照渡しですか? (サニティチェック)
- 29. Mutexオブジェクトは参照渡しですか?
- 30. 参照でポインタをC++で渡す
Javaは*値渡し*特に*参考値*です。しかしそれとは別に、 'Integer'(実際には、すべてのautoboxクラス)は不変です。それを変更することはできません。 –