ホームページ >Java >&#&チュートリアル >Javaの同時実行性とは何ですか?
#同時実行性と並列処理
##同時実行性:は、一定期間内の複数の処理を指します。タスクは交互に実行されます。複数のスレッドが動作している場合、CPU の実行時間をいくつかの時間帯に分割し、各時間帯を各スレッドに割り当てて実行します。 1 つのスレッドのコードが実行されている間、他のスレッドは一時停止されます。
並列:は、複数のタスクを同時に処理できる機能を指します。複数のスレッドが動作している場合、CPU はこれらのスレッドからのリクエストを同時に処理できます。 したがって、並行環境ではプログラムのクロージャが壊れ、次のような特徴が現れます:
1. 並行プログラム間には相互制限関係があります。直接的な制約は、別のプログラムの計算結果を必要とする 1 つのプログラムに反映され、間接的な制約は、プロセッサやバッファなどの共有リソースをめぐって競合する複数のプログラムに反映されます。
2. 同時実行プログラムの実行プロセスは断続的です。プログラムは現場での指示と実行ポイントを記憶する必要があります。
3. 同時実行数が適切に設定され、CPU に十分な処理能力がある場合、同時実行によりプログラムの実行効率が向上します。
同時環境では、オブジェクトに複数のスレッドがアクセスできる場合、アクセスされたスレッドによってオブジェクトが変更され、データの不整合が発生します。そこで、スレッドセーフの概念が提案されています。
#スレッドの基本概念の紹介スレッドとプロセス
プロセス: すべてのプロセス独立したコードとデータ空間 (プロセス コンテキスト) があり、プロセス間の切り替えには大きなオーバーヘッドが発生し、プロセスには 1 ~ n 個のスレッドが含まれます。 (プロセスはリソース割り当ての最小単位です)。簡単に言えば、プロセスは互いに分離され、ある程度独立して実行されるプログラムです。
スレッド: 同じタイプのスレッドはコードとデータ空間を共有し、各スレッドには独立した実行スタックとプログラム カウンター (PC) があり、スレッド切り替えのオーバーヘッドは小さくなります。 (スレッドは CPU スケジューリングの最小単位です) スレッドはプロセスと同様に、作成、準備完了、実行中、ブロック、終了の 5 つの段階に分かれています。#1. 作成: 新しいスレッド オブジェクトが作成されますが、start() メソッドはまだ呼び出されません。例: Thread thread = new Thread();
以上がJavaの同時実行性とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。