2009-06-23 10 views

cevap

11

aktör çerçevesi bu işlemek için dizayn edilmiştir - aşağıdaki gibi loop-react modeli kullanan varsayarak, aslında, sadece bir iplikle bu işleyebilir: Programlama s 590-593 günü

import actors._ 
import actors.Actor._ 

val a = actor { 
    loop { 
    react { 
     case ABC => //Handle here 

    } 
    } 
} 

Scala'da daha ayrıntılı olarak ele alınmıştır: temel olarak react yöntemi hiçbir zaman normal olarak geri dönmez (bir istisna ile sona erer) ve dolayısıyla çağrı yığınının korunmasına gerek yoktur. Bunu sonsuza dek döngü olarak düşünebilirsiniz.

+0

Teşekkür ederiz. Bu cümleyi kitapta gözden kaçırmış olabilirim. Ve çalışan iş parçacığı yığın boyutunu artırmanın yolu nedir - sadece meraklı? – akarnokd

+1

bir göz atın: http://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_7_5_final/src/actors/scala/actors/FJTaskScheduler2.scala?view=markup. "Actors.maxPoolSize" gibi sistem özelliklerini tanımlayabileceğinizi göreceksiniz. –

+0

Buradaki nokta, FJTaskScheduler'ın sisteminizin ne kadar eşzamanlılık sağladığına karar vermesine izin vermektir (yani kaç tane kullanılabilir işlemci var) –

İlgili konular