検索
ホームページJava&#&面接の質問Javaインタビューロック

Javaインタビューロック

Jan 04, 2021 pm 05:32 PM
javaロックインタビュー

Javaインタビューロック

インタビューの質問:

Java のロックについて何か知っていますか?ロックにはどのような種類がありますか?それらの違いは何ですか?教えて。

(学習ビデオ共有: Java ビデオ チュートリアル)

答え:

ロックとは何か、何に使うのか、ロックの種類、ロックの違いに大別できます。

1:ロックとは何ですか?また何に使用されますか?

ロックは主に、リソース共有の同期を実現するために使用されます。ロックを取得した後にのみ同期コードにアクセスできます。それ以外の場合は、他のスレッドがロックの使用を終了してロックを解放するのを待ちます。

2:どんな種類のロックがありますか?

ここでの主な焦点は、同期とロックです (インタビューではこの 2 つについて質問しているため)。

synchronize: メソッドの前に配置することも、コード ブロックの前に配置することもできますが、ロックされたオブジェクトを指定する必要があります。通常は、wait、notify、notifyAll と一緒に使用されます。 wait: 保持されていたオブジェクトのロックを解除し、CPU を解放します。 sleep: CPU を解放しますが、占有されているオブジェクトのロックは解放しません。

notify: 待機キュー内のスレッドを起動して、アクセス用のロックを取得できるようにします。

notifyAll: 待機キュー内のオブジェクト ロックを待っているすべてのスレッドを起動し、ロックを取得するために競合させます。

ロック: 同期と同じセマンティクスを持ちますが、割り込みロック待機や時限ロックなどの他の機能が追加されています。待機中なので、同期の代わりにロックを使用できます。提供されるメソッドは次のとおりです:

# (関連する面接の質問に関する推奨事項: Java 面接の質問と回答)

lock(): ブロック方式でロックを取得します。ロックが取得されなくなるまで待機し、中断されません。

tryLock(): 取得します。取得できれば true を返します。取得できなかった場合は返します。間違い。

tryLock(long timeout,TimeUnit単位): 取得された場合はtrueを返し、取得されなかった場合は指定された時間待機し、まだ取得されていない場合は、まだ取得されていない場合は false を返します。

lockInterruptibly(): ロックと似ていますが、ロックが取得されない場合は、ロックが取得されるまで休止状態に入ります。または現在のスレッドがブロックされているため、スレッドは中断されます。 3:

この 2 つの違いは何ですか?

一貫性のないパフォーマンス: リソースの競合が動機付けられている場合、ロックのパフォーマンスは同期よりも優れていますが、競合が動機付けられていない場合は、ロックよりも同期のパフォーマンスが優れています。

ロック メカニズムは異なります。同期は JVM レベルで実装され、システムはロックが解放されたかどうかを監視します。ロックはコードに実装されており、finally ブロックで手動で解放する必要があります。ロックは非ブロック的な方法で取得できます。

使用法は異なります。同期はコード ブロックとメソッドで使用できます。ロックはコードを通じて実装され、より正確なスレッド セマンティクスを持ちます。

関連する推奨事項:

Java 入門チュートリアル

以上がJavaインタビューロックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcsdnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)