这个函数并发执行安全吗?

发布于 2024-10-04 03:59:46 字数 156 浏览 0 评论 0原文

  def isSafe( i:Int) = {
    var count = i
    var acc = 0
    while(count!=0){
      acc += i*i
      count -= 1
    }
    acc
  }
  def isSafe( i:Int) = {
    var count = i
    var acc = 0
    while(count!=0){
      acc += i*i
      count -= 1
    }
    acc
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

阳光下的泡沫是彩色的 2024-10-11 03:59:46

如果安全意味着它返回相同的结果,而与调用它的线程数量和顺序无关,那么是的,它是安全的。这是因为它不修改任何共享内存位置,仅修改其局部变量。

If by safe you mean that it returns the same result independently of how many threads invoke it and in which order, then yes, it's safe. This is because it doesn't modify any shared memory locations, only its local variables.

三人与歌 2024-10-11 03:59:46

它是安全的,没有可能导致跨线程污染的共享状态。

它也过于复杂,以下定义既短又快:

def isSafe(i: Int) = i * i * i

It's safe, there's no shared state that could lead to cross-thread contamination.

It's also massively over-complicated, the following definition is both shorter and faster:

def isSafe(i: Int) = i * i * i
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文