如何使线程运行更快?

用户名

我是Web开发人员中的新手,我有一个小问题。我正在使用scala akka进行喷雾制作网站。领导问我一个问题:我有这样的回应

case HttpRequest(GET, Uri.Path("/ping"), _, _, _) => {
    Thread.sleep(10)
    sender ! HttpResponse(entity = "this is t2")
}

Thread.sleep(10)表示一个重线程,其处理时间为10ms,因此使整个程序运行速度慢1000倍,因此如何使它的HTTPRequest检索速度提高10倍呢?提示是使用演员,但我以某种方式阅读了整个文档,但仍然缺少一些内容

哈里斯·奥斯曼纳吉奇(HarisOsmanagić)

一种方法是:

case HttpRequest(GET, Uri.Path("/ping"), _, _, _) => {
    val replyTo = sender
    Future {
      someCPUIntensiveFunction()
      replyTo ! HttpResponse(entity = "this is t2")
    }
}

基本上,您可以将“重功能”调用移至“将来”中。这将使接收HttpRequest的当前线程在创建Future时立即继续运行,并能够处理下一个HttpRequest。将来将在单独的线程中执行其代码。因此,您的程序中将有两个“路径”。一个将处理HttpRequest,另一个将执行someCPUIntensiveFunction()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章