1、スレッドとプロセスの違いは?
(1)との間の基本的な違い
プロセスは、リソース割り当ての単位である
スレッドがスケジューリングおよび実行単位です。
(2)オーバーヘッド
オーバーヘッドも大きく切り替えるプロセス。各プロセスは、独自のコードとデータスペースがあります。
小さなスレッド切り替えのオーバーヘッド。スレッドは軽量プロセスとして見ることができ、スレッドがコードやデータ空間の同じタイプを共有し、各スレッドは、独自の独立した操作のスタックを持っています。
(3)環境
法:オペレーティング・システムで同時に複数のタスク(プログラム)を実行します。
スレッド:制服のアプリケーションを同時に実行する複数の連続流れを持っています。
(4)メモリ割り当て
プロセス:システムの動作中は、各プロセスのためにメモリの異なる領域が割り当てられます。
スレッド:リソーススレッドがリソースを共有することができ、プロセス、スレッドグループに属しているリソースを使用しています。
(5)の関係が含まれている
唯一のスレッドがシングルスレッドのプロセスとして見ることができるです。プロセスが複数のスレッドがある場合は、実行はラインではなく、複数のスレッドが共同で着手します。
プロセスがコンテナのスレッドで、スレッドはプロセスの一部であり、スレッドが軽量プロセスであることを特徴とすることができます。
2、パラレル(非同期)と同時(同期)差?
私の理解では、記述並行性と並列処理は、複数のタスクに直面しているということです。
あなたは野菜になっていることを言うならば、母親が電話を拾うためにあなたを伝えます。
その後、(1)(代替が違うことをやって)、あなたがチョッピング停止した場合、電話に出戻ってきて、電話に応答し、調理を完了し続けます。これは同時です。
(2)(別の何かをすると同時に)あなたは同時に、携帯電話側野菜の側にお答えします。これは、平行です。
作業が非同期である言い換えれば、同期は、交互に仕事です。
3、ガードどのようなスレッドがありますか?
デーモンスレッドはメインスレッド実行デーモンスレッドが一緒に実行される(1)。破壊の場合は、メインスレッド、一緒にデーモンスレッドの破壊。たとえば、GCのために。デーモンスレッドを以下のように設定する方法があります。
// 标识当前方法为守护线程,一定要在启动线程前设置为守护线程
thread.setDaemon(true);
thread.start();
(2)非デーモンスレッドが依然としてメインスレッド、互いのメインスレッドの終了後に動作し続けます。