Java エンジニアのインタビュー - 不安定なキーワード

王林
リリース: 2020-11-03 15:47:33
転載
1756 人が閲覧しました

Java エンジニアのインタビュー - 不安定なキーワード

1. volatile は正確に何をしますか?

(volatile は秩序性と可視性を保証しますが、原子性は保証できません)

(ビデオ チュートリアルをお勧めします :java ビデオ チュートリアル)

1. 命令の再配置は禁止されています

2. 異なるスレッドがこの変数を操作するとき、つまり 1 つのスレッドが変数を変更するとき、可視性が保証されます。特定の変数値が設定されると、新しい値は他のスレッドにすぐに表示されます

3. アトミック性は保証されません (スレッドが安全ではありません)

2. synchronized キーワードと volatile キーワードの比較

volatile キーワードはスレッド同期の軽量実装であるため、volatile のパフォーマンスは synchronized キーワードよりも明らかに優れています。ただし、volatile キーワードは変数にのみ使用でき、synchronized キーワードはメソッドとコード ブロックを変更できます。

(より関連したインタビューの質問に関する推奨事項:java インタビューの質問と回答)

同期キーワードは、主にロックの取得と解放を減らすために、JavaSE1.6 以降に導入されました。ロックによるパフォーマンスの消費により、バイアスされたロック、軽量ロック、その他のさまざまな最適化の導入により、実行効率が大幅に向上しましたが、実際の開発では synchronized キーワードが使用されるシナリオがさらに増えています。

volatile キーワードへのマルチスレッド アクセスはブロックされませんが、synchronized キーワードはブロックされる可能性があります。

volatile キーワードはデータの可視性を保証できますが、データのアトミック性は保証できません。 synchronized キーワードは両方を保証できます (synchronized は、原子性、順序性、可視性という 3 つの主要なプロパティを保証します)。

volatile キーワードは主に複数のスレッド間の変数の可視性を解決するために使用され、synchronized キーワードは複数のスレッド間のリソースへのアクセスの同期を解決します。

関連する推奨事項:Java の使用を開始する

以上がJava エンジニアのインタビュー - 不安定なキーワードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!