3マルチスレッド顔の質問のコレクション

 

Javaはインタビューの質問をスレッド

マルチスレッドと並行性の問題は、それらをインタビュー任意のJavaの重要な部分です。あなたが任意の株式投資銀行の受付事務所についての情報を取得したい場合は、マルチスレッド処理についての質問の多くを準備する必要があります。マルチスレッドと並行処理での投資銀行業務では、特に電子取引の開発に関連する非常に人気の話題です。彼らはインタビュアーに混乱のJavaスレッドの問題の多くを聞いてきます。インタビュアーは、ただ単に表面に浮い候補者が多いため、インタビュアーは、Javaスレッドと並列性の十分な知識を持っていることを確認したかったです。ダイレクト・ツー・マーケット自然の中で、大容量かつ低遅延電子取引システムの取引のためには、並行しています。以下は、私が質問をするJavaスレッドの異なる場所で異なる時間に好きなものです。質問に答えるために、これらの手がかりは、十分な時間がありますが、私は答えを提供していませんでしたが、私はあなたにできるだけ長く手掛かりを与えるでしょう。今Java5を参照し、同時実行ツールと同時コレクションに関する契約上の問題が増加しています。これらの問題はThreadLocalを、セマフォConcurrentHashMapの多くの人気を数える、キューをブロックします。

 

15マルチスレッドのJava面接の質問と回答

1)T1、T2、T3 3件のスレッドがありますが、どのようにT2での実行を実装した後、T1での実行を実装した後、T3をT2を確保するのですか?

この質問は、通常の目的は、あなたが「参加」する方法に精通しているかどうかを検出することで、最初のラウンドまたは電話面接の段階でスレッドを尋ねています。このマルチスレッドの問題は、それが参加する方法を使用して達成することができ、比較的簡単です。

2)Javaでのロックは何であるか同期ブロックに勝る利点をインタフェースしますか?あなたは、その完全性を維持するためには、あなたがそれを達成するために何をするだろう、複数のユーザーが読み取ることができ、効率的なキャッシュを実装する必要がありますが、書き込みのみをユーザーに許可しますか?

ロックインターフェースマルチスレッドと並行プログラミングの最大の利点は、彼らが読んで、それぞれ、それはあなたがConcurrentHashMapのような条件付きの高性能なデータ構造や閉塞を書く満たすことができ、書き込みにロックを提供するということです。Javaはインタビューの質問は、インタビュアーの質問への回答に基づいて、より多くのスレッドになります。それはあなたがマルチスレッドの面接に行く前にスペースを接続されたエンド側のキャッシュと取引の電子取引システムを構築するため、現在の顧客の大多数であるので、私は強く、慎重にロックを読むことをお勧めします。

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)競合状態とは何ですか?あなたは競争をどのように特定して解決しますか?

これは、マルチスレッドインタビューの質問の進行した段階で表示されています。ほとんどの面接では、発生する最寄りの競争条件を聞いてきますし、どのように解決しました。いくつかの時間は、彼らが簡単なコードを記述し、その後、あなたはレースの条件コードを検出できるようになります。私は投稿する前にJavaは、競争の条件に記事を参照することができます。私の意見では、これは最高のJavaのインタビューの質問スレッドの一つであり、それは競技経験、またはデータ競合や他の競合状態のないコードを書くの条件に対処するための正確な候補を検出することができます。この点で最高の本は、「Javaで並行処理の実践」です。

10)どのようにスレッドダンプを使用するのでしょうか?どのようにスレッドダンプを分析するのでしょうか?

UNIXでは、あなたは殺す-3、その後、スレッドダンプは、あなたが「CTRL +ブレイク」を使用することができますウィンドウにログインし、印刷します使用することができます。彼はあなたがどのようにそれを分析するために要求した場合、非常にシンプルで、プロのスレッド面接の質問は、しかし、それは非常に困難になります。

11)なぜ我々はスタートは()メソッドは、なぜ我々は、直接()メソッドを実行して呼び出すことはできませんrun()メソッドを実行し呼ぶのですか?

これは別の非常に古典的なマルチスレッドのJavaの面接の質問です。これは私がちょうど時間を混乱マルチスレッド・プログラムを書き始めたものです。さて、問題は尋ねたインタビューの最初のラウンドでの電話インタビューやミドルクラスJavaで通常です。この質問に対する答えは、あなたが新しいスレッドを作成し、内部のrun()メソッド内のコードを実行しますstart()メソッドを呼び出すときに、このようにする必要があります。あなただけのrun()メソッドを呼び出した場合でも、それは、呼び出し元のスレッドのコードを実行していない新しいスレッドを作成しません。私はより多くの情報については、この記事を読む前に、「開始と実行のアプローチの違い」が書き込まれます。

12)Javaはどのようにブロックされたスレッドに目を覚ますのですか?

これは、スレッドとトリッキーなブロック上の問題であり、それは多くのソリューションを提供しています。あなたがIOをブロックするスレッドが発生した場合、およびIは、スレッドを中止する方法はないと思います。呼び出しが待機するためのスレッドがブロックされている場合は()、スリープ()、または方法は、あなたがスレッドを中断することができ、かつ例外:InterruptedExceptionを投げることによって、それをウェイクアップさせ()に参加。私は、ブロックされた処理スレッドに関する多くの情報がありますが、「Javaでのブロッキング方法に対処する方法」の前に書きました。

13)は、Java CycliBarriarとされたCountDownLatchの違いは何ですか?

このスレッドの問題は主にあなたがJDK5と契約に精通しているかどうかを検出するために使用されます。これら2つの違いは、CyclicBarrierを再利用可能な障害物が渡されていているが、たCountDownLatchを再利用することはできません。

14)何がそれを支援するつもり同時アプリケーションを作成する必要があり、不変のですか?

別のマルチスレッド古典的な面接の質問、直接スレッドに関連しますが、間接的に多くのことを助けていません。このJava面接の質問は、彼が不変オブジェクトを書くためにあなたを依頼された場合、非常にトリッキーになる、またはStringは不変である理由を尋ねことができます。

15)マルチスレッド環境がある中で、あなたが遭遇する一般的な問題は何ですか?それをどのように解決したのですか?

マルチスレッドと並列プログラムは、多くの場合、メモリ・インタフェース、競合状態、デッドロック、ライブロックと飢餓の出会いを持っています。問題は、あなたはそれが間違って取得する場合、見つけてデバッグすることは困難だろう、十分ではありません。これは、ほとんどの実際のアプリケーションに基づいて面接ではなく、Javaのスレッドの問題に基づいています。

他のいくつかの問題点を追加します。

Javaで1)グリーンスレッドとネイティブスレッドの違いは?

2)スレッドとプロセスとの間の差?

3)マルチスレッドにコンテキストスイッチとは何ですか?

4)デッドロックやライブロック、デッドロックや飢餓の違いの違いは?

5)スレッドのスケジューリングアルゴリズムは、Javaで何を使用されていますか?

6)Javaスレッドのスケジューリングには何ですか?

7)スレッドで、あなたは例外をキャッチする方法に対処することはできませんか?

8)Javaでお勧めできませんなぜスレッドグループは、何ですか?

9)なぜキュータフレームワークは、アプリケーションを使用して、より良いスレッドを作成および管理するには?

10)Javaのエグゼキュータとのエグゼキュータの違い?

11)は、WindowsおよびLinux上に使用されたスレッドCPU時間を見つけるためにどのように?

http://ifeve.com/15-java-faq/

おすすめ

転載: www.cnblogs.com/wwmiert/p/11455995.html