我想知道,2个进程的语句可以交错多少种方式? 我知道什么是交错,但我似乎无法得出一个公式。
答案 0 :(得分:3)
它是Binomial Coefficient并且它负责可能的交错的组合爆炸,这使得多线程代码的分析非常具有挑战性,如果不是不切实际的话。
所以给定流程P1
带有N
说明并处理P2
并附带M
说明,您会获得N+M over N
,即(N+M)! / N!M!
,交错,即使每个进程的指令数量相对较少,指数也会呈指数增长。例如,如果您有两个进程,每个进程有五个指令,则可能的交错数为252
。然而,大多数真实世界的应用程序都有数百万条指令,而且通常只涉及两个进程(或线程)。