gpt4 book ai didi

java - JRE 如何为具有非有效最终局部变量的 lambda 体创建并发问题?

转载 作者:行者123 更新时间:2023-12-02 10:33:53 26 4
gpt4 key购买 nike

我指的是我们经常在使用 lambda 时遇到的常见编译错误。

Variable used in lambda expression should be final or effectively final

它警告我们不要在 lambda 体内使用非明确赋值。我明白它说的是什么。

在 JLS,it明确表示

The restriction to effectively final variables prohibits access to dynamically-changing local variables, whose capture would likely introduce concurrency problems.

但我不太清楚它是如何产生问题的。

有人可以向我解释一下当我们试图违反这一点时,它会如何造成潜在的并发问题吗?

最佳答案

如果将变量捕获到 lambda 表达式中并将其传递给另一个线程,则对该变量的访问不会同步。这会导致并发问题。

关于java - JRE 如何为具有非有效最终局部变量的 lambda 体创建并发问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53442707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com