1.同期(同期)と非同期(非同期)
同期および非同期は、通常のメソッド呼び出しを記述するために使用されます。
同期メソッド呼び出したら、メソッドを呼び出す必要があり、発信者は、その後の行動まで継続して返します。
非同期メソッド呼び出しメッセージのように、一度起動、メソッドの呼び出しはすぐに戻り、呼び出し側はその後の操作を続けることができます。
2.同時(並行)およびパラレル(並列の)
同時実行性と並列性は二つの概念は非常に簡単に混乱している、彼らは一緒に実行する2つの以上のタスクを表すが、異なる強調してすることができます。
交互に複数のタスクの同時実行を重視し、複数のタスクまたはシリアルの間の可能性があり、並列は、真の意味で「両方」であります
3.クリティカルエリア
重要な領域は、パブリックリソースを示すために使用されるか、共有データは、複数のスレッドで使用することができます。しかし、それぞれの時間は、一つのスレッドだけがそれを使用するには、しかし、重要なリソース領域は、他のスレッドが待機する必要があり、このリソースを使用するためには、占有されています。
例:プリンタは1つのタスクのみを実行することができ、待ち時間の残りの部分は、現在実行後に実行されています。
ブロックされた4(ブロッキング)および非ブロッキング(非ブロッキング)
ブロッキングと非ブロッキング通常、マルチスレッド間の相互作用を記述するために使用されます。
妨害:スレッドがクリティカル・エリアのリソースを保持しています。そして、このスレッドに必要な他のすべてのリソースは、この重要な分野で待機する必要があります。待機中のスレッドがハングします。
ノンブロッキング反して、それが他のスレッドに干渉する可能スレッドは、すべてのスレッドが前方に実行するために続行しようとしますがあることを強調する。
5.デッドロック(デッドロック)
デッドロック:二つ以上のスレッドが無限に待機が生じ、お互いのリソースを保持する必要があります。