首页 > 解决方案 > 如何在不阻塞 CPU 的情况下执行无限循环

问题描述

如何使这个循环不使用 100% CPU?

while(true){}

在主线程中,我不想退出,所以我需要在主线程中阻塞执行,同时让所有其他线程继续运行。在 Golang 中,有一个选项:

select {}

它不会阻塞 CPU,但也会挂起主线程。我怎样才能在 Scala 中做到这一点?

标签: scala

解决方案


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

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

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

正如其他人所提到的,它可能是您的问题的更好解决方案(例如从 cat-io延迟),但如果没有更多细节,很难说出更多信息。


推荐阅读