Scala 中的异步编码

发布于 2024-11-18 19:37:33 字数 262 浏览 1 评论 0原文

可能的重复:
F# 异步工作流程的 Scala 等效项是什么?

Scala 中是否有相当于 F# 异步工作流程的功能?我想用它来同时抓取网页。

谢谢

Possible Duplicate:
What is the Scala equivalent of F#'s async workflows?

Is there an equivalent to F# async workflows in Scala ? I would like to use this to crawl webpages concurrently.

Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

放手` 2024-11-25 19:37:33

要并行异步执行任务,只需使用 Actor.actor 方法:

import scala.actors.Actor._

actor {
  // code here is excuted asynchronously  
}

要执行任务并等待结果,请使用 futures:

import scala.actors.Futures.future

val f = future {
  // code here is excuted asynchronously
  // last expression is returned
}
//... other code
val result = f() // block until f is completed and return the value

对于更复杂的工作流程,请查看 Scala(或 Akka)actor 。您还可以查看允许异步 IO 操作的 java NIO。

To execute a task asynchronously in parallel, simply use Actor.actor method:

import scala.actors.Actor._

actor {
  // code here is excuted asynchronously  
}

To execute a task and wait for a result, use futures:

import scala.actors.Futures.future

val f = future {
  // code here is excuted asynchronously
  // last expression is returned
}
//... other code
val result = f() // block until f is completed and return the value

For more complex workflows, have a look at Scala (or Akka) actors. You can also have a look at java NIO which allows async IO operations.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文