如何在不阻塞CPU的情况下进行无限循环

时间:2019-05-03 16:57:15

标签: scala

如何使此循环不使用100%CPU?

while(true){}

在主线程中,我不想退出,因此我需要阻止主线程中的执行,同时允许所有其他线程连续运行。在Golang中,有一个选项:

select {}

这不会阻塞CPU,但也会挂起主线程。如何在Scala中做到这一点?

1 个答案:

答案 0 :(得分:4)

您问题的最简单答案可能是:

import scala.concurrent.duration.Duration
import scala.concurrent.{Await, Future}

Await.result(Future.never, Duration.Inf) //semantic block

正如其他人所提到的那样,它可能是解决您问题的更好解决方案(例如cats-io的deferred),但是如果没有更多细节,很难告诉更多。