糸量について
必要に応じて、1 つのコアで 100 のスレッドを使用できます。OSはそれらをスケジュールして、それぞれが実行する時間を確保します。実行中のコンピューターには、すでに数百のアクティブなスレッド/プロセスがあり、それらのほとんどはアイドル状態です (Windows タスク マネージャーはその情報をどこかに表示します)。
CPU の各コアは、一度に 1 つのスレッドを実行できます。i7-2640Mには 2 つの物理コアがありますが、それぞれがハイパースレッディング (= 1 つの物理コアで 2 つのスレッドを「並列」で実行) を行うため、4 つのコアを使用して作業できます。
最適なスレッド数を概算するには、スレッドのアクティブ度を知る必要があります。各スレッドがスリープ/待機なしで常に実行されると、完全なコアが占有されます。その場合、4 つを超えるスレッドを使用しないでください。スレッドは互いにブロックするだけだからです。アクティブなスレッド間の切り替えには CPU の時間がかかるため、スレッドが増えると全体的なパフォーマンスが低下します。
スレッドが待機している場合は、アクティブの割合を把握する必要があります。たとえば、各スクリーンスレッドはほとんどの場合、ユーザー入力を待ちます。各入力の処理には 1 秒かかり、各画面は 1 分あたり 30 イベントを受け取ると予想されます。つまり、それぞれに 1 分あたり約 30 秒かかるということです。1 分間に 4 x 60 秒あるので、最適なスレッド/スクリーン数は約 8 になります。
小さなタスクを実行するエグゼキュータがあり、それぞれが数秒以内に完了する場合は、コアとほぼ同じ数のスレッドを使用します。エグゼキューターによって小さなタスクをスレッドに分散できるため、各コアの負荷を約 100% に戻すことができます。
データベースの整合性について
Eugen Rieckを参照してください。トランザクションは、アトミックな変更を保証する方法です (= 他のプロセスはトランザクションの開始と終了の間の状態を見ることができません)