i
的素数数量。例如,如果
i
为 100,则结果应为 25
。,以下是我当前的实现:,当我运行这个程序时,我得到了较小的 i
值的正确结果(直到大约 1000),但是对于较大的 i
值,结果不一致并且不正确。,随着 i
的值变大,结果波动增大。是什么原因造成的?有什么方法可以使其一致且正确吗?,您有一个共享变量,但没有适当的同步。存在竞争条件(*pr += 1
)。在共享变量前后添加互斥体修复它(mu.Lock()、mu.Unlock()
)。,代码:,输出:, i
的素数数量。i
为 100,则结果应为 25
。,以下是我当前的实现:,当我运行这个程序时,我得到了较小的 i
值的正确结果(直到大约 1000),但是对于较大的 i
值,结果不一致并且不正确。,随着 i
的值变大,结果波动增大。是什么原因造成的?有什么方法可以使其一致且正确吗?,您有一个共享变量,但没有适当的同步。存在竞争条件(*pr += 1
)。在共享变量前后添加互斥体修复它(mu.Lock()、mu.Unlock()
)。,代码:,输出:,