首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当多个客户端试图在稳定契约中同时更改状态变量时,会发生什么情况?

当多个客户端试图在稳定契约中同时更改状态变量时,会发生什么情况?
EN

Stack Overflow用户
提问于 2022-05-17 09:39:22
回答 1查看 37关注 0票数 0

对于像MySQL这样的数据库,我们拥有数据一致性锁,当两个客户机试图查找一个值并更新它时,我可以使用锁来确保第二个客户机总是等待第一个客户端完成它的操作。

是否有任何机制像锁一样用于数据一致性?如果没有,如果我有一份关于以太的合同,会发生什么:

代码语言:javascript
复制
contract MyContract{
    string name;
    function changeName(string memory newName) public view{
        name = newName;
    }
}

当地址A呼叫changeName("name1")和地址B呼叫changeName("name2")同时?状态变量"name“的值是多少?

EN

回答 1

Stack Overflow用户

发布于 2022-05-17 09:48:25

EVM以串联方式执行所有事务,而不是并行执行。

在块内执行事务的实际顺序取决于该特定块的矿工(PoW)或验证器(PoS)。然而,在大多数情况下,它们只是从最大的gasPrice订单到最小的订单。

还请注意,view修饰符不允许此函数更改合同状态。但是,如果省略修饰符,则应用上述方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72271610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档