1. 同期型と静的同期型の違い
同期型は、クラスの現在のインスタンスをロックして、他のスレッドがクラスのインスタンスのすべての同期されたブロックに同時にアクセスできないようにします。 " とクラスの 2 つ 異なるインスタンスにはそのような制約はありません。次に、静的同期により、クラスのすべてのインスタンスへのアクセスが制御され、スレッドが jvm 内のクラスのすべてのインスタンスに同時にアクセスしたり、対応するコードにアクセスしたりすることが制限されます。実際、クラス内の特定のメソッドまたはコード ブロックに同期がある場合、クラスのインスタンスを生成した後、クラスには監視ブロックがあり、スレッドがインスタンスにアクセスできるようにするために同期保護ブロックが配置されます。同時に、static synchronized は、このクラスのすべてのインスタンスが共通のモニターを共有します。これが 2 つの違いです。つまり、synchronized は this.synchronized と同等であり、
static synchronized は Something.synchronized と同等です。
著者 Jie Chenghao の「Java More」スレッド設計パターンには、次のような例があります。 pulbic クラス Something() を使用して使用します ‑ ‑ public synchronized void isSyncB(){}
cSyncB(){}
}
では、Something クラスの 2 つのインスタンス a と b が追加された場合、次のグループ メソッドはなぜ同時に複数のスレッドからアクセスされるのでしょうか
a. x.isSyncA() と x.isSyncB()
b. x.isSyncA() y.isSyncA()
c. x.cSyncA() と y.cSyncB()
d. x.isSyncA() と Something.cSyncA()
ここで、これらはすべて同じインスタンスの同期されたドメインにアクセスします。 b. それらは異なるインスタンス用であるため、同時にアクセスできます。 c. 異なるインスタンスは依然として制限されます (Something.isSyncA()。 ) と Something.isSyncB() があるため、同時にアクセスすることはできません。
では、d はどうでしょうか? この本の答えは同時にアクセスできます。その理由は、同期されたインスタンス メソッドと同期されたクラス メソッドには異なるロックがあるためです。
個人的な分析では、同期と静的同期は 2 つのギャングに相当し、それぞれが独自の業務を担当しており、同時にアクセスできます。 Java の内部設計の同期がどのように実装されるかはまだ明らかではありません。
結論: A: synchronized static は特定のクラスのスコープであり、synchronized static cSync{} は、複数のスレッドがこのクラスの synchronized static メソッドに同時にアクセスすることを防ぎます。これは、クラスのすべてのオブジェクト インスタンスに対して機能します。 N y B: Synchronized はインスタンスのスコープです。 Synchronized issync () {} は、複数のスレッドがこのインスタンスの synchronized メソッドに同時にアクセスすることを防ぎます。
2. 同期メソッドと同期コードの違い
3. 同期したキーワードは継承できません

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
