丢了几次更新

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

按模型,3 个线程各 +10、非原子,lost(3, 10, False) 交回几?

原子操作模型:atomic_add 一步到位不可分;final_count(n, incs, 是否原子)——原子 = n*incs、非原子最坏只剩 incs;lost=丢了几次更新。

def atomic_add(x, d):
    """原子加:读-改-写一步到位、不可分。"""
    return x + d


def final_count(n_threads, incs, atomic):
    """n 个线程各 +incs 次:原子的结果确定 = n*incs;非原子会丢更新、最坏只剩 incs。"""
    return n_threads * incs if atomic else incs


def lost(n_threads, incs, atomic):
    """丢了多少次更新(原子 = 0)。"""
    return 0 if atomic else (n_threads - 1) * incs

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

                        
👩‍🏫
AI
💬 题目评论

全部评论