Jak rozumiem, aktorzy to w zasadzie lekkie wątki zaimplementowane na wątkach, działające na wielu aktorów w małej puli współużytkowanych wątków.aktorzy scala vs wątki i blokowanie IO
W tym przypadku użycie operacji blokowania w aktoru blokuje wątek podstawowy. To nie jest problem z poprawnością, ponieważ biblioteka aktorów spowoduje pojawienie się kolejnych wątków w razie potrzeby (czy to prawda?), Ale potem kończy się z mnóstwem wątków, negując korzyści z używania aktorów w pierwszej kolejności.
Biorąc pod uwagę to, w jaki sposób działają aktorzy, gdy trzeba wykonywać takie operacje IO? Czy istnieją operacje, które "blokują aktor", zawieszając aktora, jednocześnie pozwalając wątkowi przejść do innych operacji (tak jak operacje blokujące zawieszają wątek, pozwalając procesorowi przejść do innych operacji), lub wszystko jest napisane w CPS, z łańcuchem aktorzy? Czy aktorzy po prostu nie pasują do tego rodzaju długotrwałej operacji?
Tło: Mam doświadczenie w pisaniu tekstów wielowątkowych w klasyczny sposób i rozumiem prettywell jak działają pętle CPS/zdarzeń, ale nie mam absolutnie żadnego doświadczenia w pracy z aktorami i po prostu chcę zrozumieć, na wysokim poziomie, jak one pasują , zanim zanurzę się w kodzie.
Powinno to obejmować w pewnym momencie ograniczoną kontynuację, jak w http://jim-mcbeath.blogspot.com/2010/09/scala-coroutines.html. A może za pomocą nieblokującego przepływu komunikatów? (http://blog.typesafe.com/non-blocking-message-flow-with-akka-actors) – VonC
Proszę zobaczyć moją odpowiedź tutaj http://stackoverflow.com/questions/1512066/is-there-any-non -blokowanie-io-open-source-implementacja-dla-scalas-aktorów –