如何使线程运行得更快



我是网络开发的新手,有一个小问题。我正在使用scala-akka与喷雾制作一个网站。我的领导给了我一个问题:我有这样的回答

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

Thread.sleep(10)表示一个重线程,它的处理时间是10ms,所以它使整个程序运行速度慢了1000倍,那么我如何使它多检索10倍HTTPRequest呢?提示使用了actors,但不知何故,我阅读了整个文档,但仍然缺少一些

一种方法:

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

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

相关内容

  • 没有找到相关文章

最新更新