scala - 如何在不阻塞 CPU 的情况下执行无限循环
问题描述
如何使这个循环不使用 100% CPU?
while(true){}
在主线程中,我不想退出,所以我需要在主线程中阻塞执行,同时让所有其他线程继续运行。在 Golang 中,有一个选项:
select {}
它不会阻塞 CPU,但也会挂起主线程。我怎样才能在 Scala 中做到这一点?
解决方案
对您的问题最简单的答案可能是:
import scala.concurrent.duration.Duration
import scala.concurrent.{Await, Future}
Await.result(Future.never, Duration.Inf) //semantic block
正如其他人所提到的,它可能是您的问题的更好解决方案(例如从 cat-io延迟),但如果没有更多细节,很难说出更多信息。
推荐阅读
- html - angular和nativescript的结合
- node.js - 在 Mongoose 中调用 modal.countDocuments() 和 modal.count() 时出现投射错误
- javascript - 当用户手动向上或向下滚动时重置当前部分计数器
- algorithm - 如何证明均匀分区是快速排序算法的最佳情况?
- android - 使用 java.io.IOException 不生成测试覆盖率报告
- c# - 抛出异常:UWP 后台任务中未知模块中的“System.TypeLoadException”
- c# - 使用 C# 在 MVVM 中使用组合框和按钮单击事件的不同方法?
- node.js - node-postgres 监听/通知超时
- android - 将数据从一个活动的 EditText 传输到另一个活动的 EditText
- php - 这是使用 PHP MySQL 设置用户访问级别的安全方法吗?