2009-06-23 6 views

Odpowiedz

11

Ramy aktor został zaprojektowany do obsługi to - w rzeczywistości, to może sobie z tym poradzić tylko z jednego wątku, przy założeniu korzystania z wzoru loop-react następująco:

import actors._ 
import actors.Actor._ 

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

    } 
    } 
} 

Na pp 590-593 z Programowanie w Scali jest to omówione bardziej szczegółowo: w zasadzie metoda react nigdy nie zwraca normalnie (kończy się z wyjątkiem) i dlatego jej stos wywołań nie musi być zachowywany. Możesz myśleć o tym jako o pętli na zawsze.

+0

Dziękuję. Mogłem przeoczyć to zdanie w książce. A co ze sposobem zwiększenia rozmiaru stosu wątków roboczych - po prostu ciekawy? – akarnokd

+1

zobacz: http://lampsvn.epfl.ch/trac/scala/browser/scala/tags/R_2_7_5_final/src/actors/scala/actors/FJTaskScheduler2.scala?view=markup. Zobaczysz, że możesz zdefiniować właściwości systemu, takie jak "actors.maxPoolSize" itd. –

+0

Chociaż chodzi o to, aby umożliwić FJTaskScheduler decydowanie o tym, ile współbieżności obsługuje twój system (tj. O ile dostępnych jest dostępnych procesorów). –

Powiązane problemy