【问题标题】:Kotlin / Quasar Fiber Warning and QuittingKotlin / Quasar Fiber 警告和退出
【发布时间】:2016-05-09 09:33:14
【问题描述】:

我正在研究 Kotlin 和 Quasar,并且正在尝试制作“Boom”游戏。我认为我的代码很好,但是当我执行时,它会给出is hogging the CPU or blocking a thread. 警告或者只是退出,有时。

我是不是做错了什么?

gist

编辑:full output

【问题讨论】:

  • 你有 -javaagent 吗?
  • 是的,我们需要代理或构建任务来检测 AFAIK。它完美运行了大约 3/5 次,但 2/5 我收到警告或意外退出
  • 我可以建议从网络研讨会看一下 github 上的演示:blog.jetbrains.com/kotlin/2015/09/…
  • @Hyperion 你的代码运行了大约 20 次,对我来说运行良好。
  • @JakobBowyer 请将“Math.random() > 0.2”行更改为“Math.random() > 0”,它不会永远运行并有时会发出警告:/

标签: kotlin quasar


【解决方案1】:
  1. 由于您是在生成actors 而不是从主线程加入它们,因此后者可能会在前者完成执行之前退出。看看LocalActor.join
  2. 如果您同时加入两个参与者,您的程序将在一个失败时挂起,因为另一个将永远等待消息。失败时向其他参与者发送退出消息,或者使用超时接收并在发生超时时退出。
  3. 警告是完全正常的,因为 Quasar 运行时和 JVM 在执行程序时仍在“预热”,例如在您的跟踪中,Quasar 正在执行一次性线程阻塞操作,同时验证您的可挂起注解。 相反,我在标准输出(这是一个线程阻塞操作)上打印时得到了它,大概是因为 JVM 尚未优化该代码路径(可能它仍在解释模式下运行它)。如果需要 with the co.paralleluniverse.fibers.detectRunawayFibers system property,可以禁用该警告。

【讨论】:

  • 非常感谢!我加入了我的一位演员并禁用了detectRunawayFibers
猜你喜欢
  • 1970-01-01
  • 2018-06-10
  • 2020-01-08
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
相关资源
最近更新 更多