关于线量
如果您愿意,您可以在一个内核上拥有 100 个线程。操作系统将安排它们,以便每个都有时间运行。一台正在运行的计算机已经有几百个活动线程/进程,其中大多数只是空闲的(Windows 任务管理器在某处显示该信息)。
CPU 中的每个内核一次可以运行 1 个线程。i7-2640M有两个物理内核,但每个都执行超线程(=“并行”在 1 个物理内核上运行 2 个线程),因此它提供 4 个内核供您使用。
要近似最佳线程数,您需要知道线程的活跃程度。如果每个线程一直在没有睡眠/等待的情况下运行,它会占用一个完整的核心。在这种情况下,您不应使用超过 4 个线程,因为它们只会相互阻塞。在活动线程之间切换需要一些 CPU 时间,因此更多线程将导致整体性能降低。
如果您的线程正在等待,您需要计算出活跃度的百分比。例如,每个屏幕线程大部分时间都在等待用户输入。每个输入需要 1 秒的时间来处理,您预计每个屏幕每分钟将获得 30 个事件。这意味着您每分钟需要大约 30 秒。您每分钟有 4 x 60 秒,因此您的最佳线程/屏幕数约为 8。
如果您有一个执行程序来运行小任务,每个任务都在几秒钟内完成,那么使用与您拥有的内核一样多的线程。执行程序可以将小任务分配给线程,这样您就可以恢复到每个内核大约 100% 的负载。
关于数据库完整性
见欧根·瑞克。事务是确保原子修改的方法(= 没有其他进程可以看到事务开始和结束之间的状态)