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