提问人:Dgrm 提问时间:12/12/2022 更新时间:12/12/2022 访问量:12
短路和交错:如果已检查的语句发生更改怎么办
Short Circuiting && interleaving: what if the statement already checked changes
问:
我有一个关于语句和短路与无短路的处理的问题(我不知道无短路的确切名称)。
方案如下。 想象一下,我有两个语句 p 和 q,它们按以下方式计算:
if ( p && q ) then ....
棘手的是,语句 q 是一个阻塞语句,阻塞直到 true 或 false。
想象一下以下情况:p 为 true,然后程序在 q 中阻塞。然后,当 q 被释放并返回 true 时,p 不再为 true(例如,由于交错)。
我的问题是,如果存在短路,则如何处理此情况。我猜短路它不会再次检查 p。但是,如果没有短路,它应该在进入 if 子句之前同时检查两个语句是否为真,不是吗?在哪些情况下会发生这种情况?
答: 暂无答案
评论