![]() |
1
4
虽然从技术上讲,@tim是正确的,但我认为他并没有真正回答这个问题。 我相信你困惑的真正根源是你对结构的误解:
做。它与
有两个重要区别:
这种差异并不会真正影响您的示例,因为您在所有失败的尝试中抛出的异常都是相同的,但如果它们不同,可能会影响结果。例如,如果将代码修改为:
那么你应该得到这两个结果中的任何一个
从来没有其他“失败”的价值。
注意这里我明确地传递了
回答更多评论 (1月28日)
我明确通过的原因
如果您只想让所有日志具有不同的值,那么有一种更简单的方法:使用局部变量!
这样你就避免了古典主义 TOCTOU 问题。 |
![]() |
2
2
这不是一个scala问题,而是一个更普遍的多线程问题
看起来具体的问题是您正在测试
解决办法是
更新以下注释 :另一个答案解释了为什么多个线程同时启动,所以我不会在这里重复它。当多个线程并行运行时,日志记录的顺序总是不确定的。 |
![]() |
3
0
这就是最终对我有用的:
(以下代码用于
不
我必须强调一个事实,这只是为了演示,在生产代码中使用这样的设计可能不是最好的主意(阻止调用
感谢@serggr、@tim和@michalpolitowksi的帮助 |
![]() |
davidzxc574 · 将字符串缩放为字符 2 年前 |
![]() |
yic_l · 什么是“!”在这个函数中是什么意思? 2 年前 |
![]() |
Jelly · Scala:用于理解递归未来 2 年前 |
![]() |
bbgghh · 在scala中连接两个列表时如何处理不匹配的键 2 年前 |
![]() |
Iheb Mar · 卡夫卡制作人/消费者粉碎每一秒的API调用 3 年前 |
![]() |
B. Bal · 在Scala中重用类成员 3 年前 |