ホームページ  >  記事  >  Java  >  2020 年の新しい Java 面接の質問 - マルチスレッド (1)

2020 年の新しい Java 面接の質問 - マルチスレッド (1)

王林
王林転載
2020-04-25 17:54:422117ブラウズ

2020 年の新しい Java 面接の質問 - マルチスレッド (1)

1. 並列処理と同時実行の違いは何ですか?

並列とは、同時に発生する 2 つ以上のイベントを指します。同時実行とは、同じ時間間隔で発生する 2 つ以上のイベントを指します。

並列処理は、異なるエンティティ上の複数のイベントであり、同時実行性は、同じエンティティ上の複数のイベントです。

並列処理は 1 つのプロセッサ上で複数のタスクを「同時に」処理することであり、同時実行性は複数のプロセッサ上で複数のタスクを同時に処理することです。 Hadoop分散クラスタなど。

したがって、同時プログラミングの目標は、プロセッサの各コアを最大限に活用して最高の処理パフォーマンスを達成することです。

(推奨される関連ビデオ チュートリアル: java ビデオ )

2. スレッドとプロセスの違いは何ですか?

つまり、プロセスはプログラムの実行とリソース割り当ての基本単位であり、プログラムには少なくとも 1 つのプロセスがあり、プロセスには少なくとも 1 つのスレッドがあります。プロセスには実行中に独立したメモリ ユニットがあり、複数のスレッドがメモリ リソースを共有するため、切り替え回数が削減され、効率が向上します。スレッドはプロセスの実体であり、CPU のスケジューリングとディスパッチの基本単位であり、プログラムよりも小さく独立して実行できる基本単位です。同じプロセス内の複数のスレッドは同時に実行できます。

3. デーモン スレッドとは何ですか?

デーモン スレッド (デーモン スレッド) はサービス スレッドであり、正確には他のスレッドにサービスを提供します。

4. スレッドを作成するにはどのような方法がありますか?

(1) Thread クラスを継承してスレッド クラスを作成する

Thread クラスのサブクラスを定義し、クラスの run メソッドをオーバーライドします。run メソッドのメソッド本体は、その内容を表します。スレッドは完了を望んでいます。タスク。したがって、run() メソッドは実行本体と呼ばれます。

Thread サブクラスのインスタンスを作成します。つまり、スレッド オブジェクトを作成します。

スレッド オブジェクトの start() メソッドを呼び出してスレッドを開始します。

(推奨チュートリアル: java 入門プログラム )

(2) Runnable インターフェイスを使用してスレッド クラスを作成する

Runnable の実装クラスを定義するrun() メソッドのメソッド本体は、スレッドのスレッド実行本体でもあります。

Runnable 実装クラスのインスタンスを作成し、このインスタンスを Thread のターゲットとして使用して Thread オブジェクトを作成します。この Thread オブジェクトが実際のスレッド オブジェクトです。

スレッド オブジェクトの start() メソッドを呼び出してスレッドを開始します。

(3) CallableとFutureによるスレッドの作成

Callableインタフェースの実装クラスを作成し、スレッドの実行本体となるcall()メソッドを実装します。戻り値を持ちます。

Callable 実装クラスのインスタンスを作成し、FutureTask クラスを使用して Callable オブジェクトをラップします。FutureTask オブジェクトは、Callable オブジェクトの call() メソッドの戻り値をカプセル化します。

FutureTask オブジェクトを Thread オブジェクトのターゲットとして使用して、新しいスレッドを作成して開始します。

子スレッドの実行終了後に、FutureTask オブジェクトの get() メソッドを呼び出して戻り値を取得します。

5. 実行可能と呼び出し可能の違いは何ですか?

これは少し深い質問であり、Java プログラマーが取得できる知識の広さを示しています。

Runnable インターフェイスの run() メソッドの戻り値は void であり、その動作は純粋に run() メソッドのコードを実行することだけです。 Callable インターフェイス ) メソッドは戻り値を持ち、ジェネリック型であり、Future および FutureTask と組み合わせて非同期実行の結果を取得するために使用できます。

Java の面接の質問をさらに詳しく知りたい場合は、

Java の高度な面接の質問

列に注目してください。

以上が2020 年の新しい Java 面接の質問 - マルチスレッド (1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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