读方没同步能看到吗

👁️ 2 人浏览 💬 0 人评论 ❤️ 添加收藏

按可见性模型,写方发布了但读方没同步,sees(True, False) 交回什么?

贯穿本节的可见性模型(判题机有 GIL、复现不出真缓存问题,这是它的确定契约):sees(写方发布, 读方同步)——两个都为真才保证读到新值;stale=没同步会读到旧值;needs_sync(被写, 被别人读)=要不要同步。

def sees(writer_published, reader_synced):
    """读线程看到写线程的新值:要写方发布了、读方也做了同步,两个都成立才保证看到。"""
    return writer_published and reader_synced


def stale(writer_published, reader_synced):
    """没同步就可能读到旧值。"""
    return not sees(writer_published, reader_synced)


def needs_sync(shared_written, read_by_other):
    """有共享变量被写、又被别的线程读 —— 就需要同步。"""
    return shared_written and read_by_other

print(sees(True, False))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论