当我们使用循环而不是while(true)与scala actor时会发生什么?
发布时间:2020-12-16 19:13:28 所属栏目:安全 来源:网络整理
导读:使用带有actor的接收时,使用循环而不是while(true)有什么区别.循环似乎工作得更快,但为什么,以及发动机罩下发生了什么? 使用循环而不是while(true)有什么不好吗? 更多关于背景.我正在简单的ping / pong代码中进行性能测试.我正在使用接收. 这是Ping类: cl
使用带有actor的接收时,使用循环而不是while(true)有什么区别.循环似乎工作得更快,但为什么,以及发动机罩下发生了什么?
使用循环而不是while(true)有什么不好吗? 更多关于背景.我正在简单的ping / pong代码中进行性能测试.我正在使用接收. 这是Ping类: class ReceivePing( count : Int,pong : Actor ) extends Actor {def act() { var pingsLeft = count - 1 pong ! Start pong ! ReceivePing while(true) { receive { case ReceivePong => if (pingsLeft % 10000 == 0) Console.println("ReceivePing: pong") if (pingsLeft > 0) { pong ! ReceivePing pingsLeft -= 1 } else { Console.println("ReceivePing: stop") pong ! Stop exit() } } }}} 而不是while(true)它在循环中表现更好. 谢谢 解决方法
使用循环将线程释放到其他任务,而虽然没有.所以,如果你使用很多actor,那么循环的使用会提高效率.另一方面,使用while和receive的单个actor比使用loop并且做出反应(或者,就此而言,循环和接收)快得多.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |