Aktörler ile almayı kullanırken kullanırken döngü yerine (gerçek) fark nedir. Loop daha hızlı çalışıyor, ama neden ve kaputun altında neler oluyor?Scala oyuncularıyla iken (gerçek) döngü kullandığımızda ne olur?
Döngü kullanmak yerine kötü bir şey var mı (gerçek)?
Bağlam hakkında daha fazla bilgi. Basit ping/pong kodunda performans testleri yapıyorum. Ve ben alıyorum.
yerine süre içindeclass 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()
}
}
}}}
(doğru) o döngü ile daha iyi performans:
Bu Ping sınıftır.
sayesinde
Yani alma veya reaksiyonun iş parçacığı üzerinde herhangi bir etkisi olmadığı anlamına gelir. "while" ve "loop" anahtar kelimeleri threadleri kontrol ediyor. – Zerdush
@Zerdush Hayır, "döngü" ve "tepki" iş parçacığı üzerinde bir etkiye sahip - her ikisi de onu serbest bırakır. Ne "ne" ne ne de "alma" iş parçacığını serbest bırakmaz. –