Javaのインタビューの質問、15のマルチスレッドのJavaの面接の質問と回答

15のマルチスレッドのJavaの面接の質問と回答
Javaは、ステップを経る必要があります成功プログラマがある基盤の完了はインタビューの本当の始まりであると言うことができます。回答インタビュースキルは、高速かつ正確な回答、非常に重要であり、会社はあなたに良い印象を作成することができます。ここではインタビューの質問であると私は、マルチスレッドのJavaまとめたアイデアのいくつかに答えます。
1、T1、T2、T3 3つのスレッド、どのようにあなたがT2での実行を実装した後T1、T3での実行を実装した後にT2を確保んが今そこにありますか?
この質問は、通常、最初のラウンドまたは電話インタビューの段階でスレッドを頼まれ、目的は、あなたが「参加」する方法に精通しているかどうかを検出することです。答えは、メソッドに参加することができます。
何であるか同期ブロックの上にJavaのロック利点で2、インターフェース?あなたは、その完全性を維持するためには、あなたがそれを達成するために何をするだろう、複数のユーザーが読み取ることができ、効率的なキャッシュを実装する必要がありますが、唯一の書き込みをユーザーに許可しますか?
ロックインターフェースマルチスレッドと、彼らが読むためにロックを提供し、書き込みは、それぞれ、あなたは高性能なデータ構造とConcurrentHashMapのような障害物の条件を書く満たすことができる並行プログラミングの最大の利点があります。私は現在、それはマルチスレッド面接に出席するために接続する前に、電子取引システムと取引スペースをキャッシュするクライアント・サイドを構築するために広く使用されているので、あなたは慎重にロックを読んでいることを示唆しています。
Javaメソッドで待機して睡眠を除く3、?
通常、多くの場合、電話インタビューでJavaスレッド面接の質問をしました。ロックを解除するために待っている、と睡眠がロックを保持してきたが最大の違いは、待機です。待ち時間は、通常、スレッド間の相互作用のために使用され、睡眠は、多くの場合、実行を一時停止するために使用されます。
4、Javaでキューをブロック達成します。
これは、多くの目的を達成することができ、マルチスレッド比較的厳しい面接の質問です。まず、それはJavaスレッドですることができ、実際に書き込みプログラム候補者かどうかを検出することができ、第二、同時実行シナリオの候補者の理解を検出することができ、あなたはこれに基づいて多くの質問を尋ねることができます。彼は待機してキューをブロック達成()と()メソッドを通知する場合は、もう一度書くためにJava 5の並行クラスで最新のを使用するために彼を求めることができます。
消費者問題- 5、プロデューサーを解決するために、書き込みコードへのJavaを使用します。
非常に上記の問題に似ていますが、問題は、より古典的で、インタビューは以下の質問をしますがございます。Javaプロデューサに解決するためにどのように-消費者問題、当然のことながら、多くのソリューションは、私はキューを遮断することによって実施される方法を共有する必要があります。
6、Javaプログラミングは、プログラム内のデッドロックにつながる、あなたはどのように解決するのだろうか?
これは、マルチスレッドプログラムを書くことは非常に一般的ですが、場合でも、私のお気に入りのインタビューの質問Javaスレッド、デッドロックが書き込み自由なコードをデッドロックすることができない多くの候補者は、彼らが苦労しているためです。ちょうどあなたが資源やN、N個のスレッドを持っていることを伝え、あなたが操作を完了するためにすべてのリソースを必要とします。ここでは簡単にするために、N 2を交換することが可能で、大規模なデータは、より複雑な問題を見ていきます。Javaでデッドロックを回避することにより、デッドロックに関する詳細な情報を取得します。
7.は、Javaで何の原子、アトミック操作は何ですか?
非常に単純なJavaの面接の質問スレッドは、次の質問は、あなたがアトミック操作を同期する必要があるということです。
8、Javaの何中の揮発性キーが役割ですか?どのようにそれを使用するには?Javaでは、同期方法とその違いは何ですか?
Javaの5とJavaメモリモデルの変更以来、スレッドの問題volatileキーワードますます人気に基づきます。同時環境でその揮発性変数の可視性、秩序と一貫性を確保する方法についての質問に答える準備ができているはずです。
9.競合状態とは何ですか?あなたは競争をどのように特定して解決しますか?
これはインタビューの質問の進行した段階で表示され、マルチスレッド化されています。ほとんどの面接では、発生する最寄りの競争条件を聞いてきますし、どのように解決しました。いくつかの時間は、彼らが簡単なコードを記述し、その後、あなたはレースの条件コードを検出できるようになります。
10、どのようにスレッドダンプを使用するのでしょうか?どのようにスレッドダンプを分析するのでしょうか?
UNIXでは、あなたは、killを使用することができ-3、その後、スレッドダンプは、あなたが「CTRL +ブレイク」を使用することができますウィンドウでログを出力します。非常にシンプルで、プロのスレッドインタビューの質問が、彼はそれを分析する方法をお願い致します場合、真剣に考慮することは非常にトリッキーな、必要となります。
11、なぜ我々はスタートを()メソッドは、なぜ我々は直接run()メソッドを呼び出すことができない場合run()メソッドを実行し呼ぶのですか?
これは非常に古典的なマルチスレッドのJavaの面接の質問です。これは私がちょうど時間を混乱マルチスレッド・プログラムを書き始めたものです。この質問に対する答えは、あなたが新しいスレッドを作成し、run()メソッドの内部でコードを実行しますstart()メソッドを呼び出すときに、このようにする必要があります。あなただけのrun()メソッドを呼び出した場合でも、それは、呼び出し元のスレッドのコードを実行していない新しいスレッドを作成しません。
12、Javaはどのようにブロックされたスレッドを覚ますのですか?
これは、スレッドとトリッキーなブロック上の問題であり、それは多くのソリューションを提供しています。あなたがIOをブロックするスレッドが発生した場合、およびIは、スレッドを中止する方法はないと思います。呼び出しが待機するためのスレッドがブロックされている場合は()、スリープ()、またはjoin()メソッドを引き起こし、あなたがスレッドを中断することができ、かつ例外:InterruptedExceptionを投げることによって、それをウェイクアップします。
13. JavaのCycliBarriarとされたCountDownLatchの違いは何ですか?
このスレッドの問題は主にあなたがJDK5と契約に精通しているかどうかを検出するために使用されます。これら2つの違いは、CyclicBarrierを再利用可能な障害物が渡されていているが、たCountDownLatchを再利用することはできません。
14は、不変オブジェクトが何であるか、それが助けに行く同時アプリケーションを書くのか?
別のマルチスレッド古典的な面接の質問、直接スレッドに関連しますが、間接的に多くのことを助けていません。このJava面接の質問は、彼が不変オブジェクトを書くためにあなたを依頼された場合、非常にトリッキーになる、またはStringは不変である理由を尋ねことができます。
15、あなたはマルチスレッド環境で遭遇する一般的などのような問題がありますか?それをどのように解決したのですか?
マルチスレッドと並列プログラムは、多くの場合、メモリ・インタフェース、競合状態、デッドロック、ライブロックと飢餓の出会いを持っています。問題は、あなたが間違ってそれを得るならば、見つけてデバッグすることは困難だろう、十分ではありません。これは、ほとんどのJavaは、実際のアプリケーションに基づいて問題をスレッドではなく、インタビューに基づいています。
これらは、総合的ないくつかの簡単なインタビューの質問スレッドではありませんが、あなたを助けるために希望を、より多くの民間の手紙は私が得る質問に直面する可能性があります!

おすすめ

転載: blog.51cto.com/14623707/2463485