gpt4 book ai didi

scala - while(true) 和循环有什么区别?

转载 作者:行者123 更新时间:2023-12-04 15:05:30 25 4
gpt4 key购买 nike

我没有得到两个“表达式”之间的实际(语义)差异。
据说“loop”适合“react”,“while(true)”适合“receive”,因为“react”不会返回,而“loop”是一个再次调用主体的函数(至少这是我从来源中扣除的内容 - 我对使用的“andThen”并不十分熟悉)。 “接收”会阻止池中的一个线程,“ react ”不会。但是,对于“ react ”,会查找可以附加该函数的线程。

所以问题是:为什么我不能将“循环”与“接收”一起使用?它的行为似乎也与“while(true)”变体不同(而且更好!),至少这是我在分析器中观察到的。
更奇怪的是,用 "-Dactors.maxPoolSize=1 -Dactors.corePoolSize=1"和 "while(true)"和 "receive"立即调用乒乓球(这是我所期望的) - 但是,用 "循环”和“接收”,它可以毫无问题地工作-在一个线程中-这是怎么回事?

谢谢!

最佳答案

while 之间的关键区别和 loopwhile限制循环迭代 在同一个线程中发生 . loop构造(如 Daniel 所述)使参与者子系统能够在它选择的任何线程上调用 react 。

因此使用 receive 的组合在 while (true) 内将参与者绑定(bind)到单个线程。使用 loopreact 允许您在单个线程上运行支持多个参与者 .

关于scala - while(true) 和循环有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1283918/

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