Như tôi đã hiểu, các tác nhân về cơ bản là các chuỗi nhẹ được thực hiện trên các luồng, chạy nhiều tác nhân trên một nhóm nhỏ các chuỗi được chia sẻ.scala actors vs thread và chặn IO
Với trường hợp đó, việc sử dụng các hoạt động chặn trong một diễn viên sẽ chặn luồng cơ bản. Đây không phải là vấn đề chính xác bởi vì thư viện diễn viên sẽ sinh ra nhiều chủ đề hơn khi cần thiết (đúng không?) Nhưng sau đó bạn kết thúc với rất nhiều và nhiều luồng, phủ nhận lợi ích của việc sử dụng các diễn viên ngay từ đầu.
Cho rằng, các diễn viên hoạt động như thế nào khi bạn cần thực hiện các hoạt động IO như vậy? Có các hoạt động mà "diễn viên chặn", đình chỉ diễn viên trong khi cho phép các chủ đề đi vào các hoạt động khác (giống như các hoạt động chặn treo chuỗi trong khi cho phép CPU tiếp tục hoạt động khác), hoặc là tất cả mọi thứ được viết trong CPS, diễn viên? Hay các diễn viên đơn giản là không phù hợp với loại hoạt động dài hạn này?
Bối cảnh: Tôi có kinh nghiệm viết các công cụ đa luồng theo cách cổ điển và hiểu rõ cách các vòng lặp CPS/sự kiện hoạt động, nhưng hoàn toàn không có kinh nghiệm làm việc với diễn viên, và chỉ muốn hiểu , trước khi tôi đi sâu vào mã.
Nó nên liên quan đến một số điểm tiếp tục được giới hạn, như trong http://jim-mcbeath.blogspot.com/2010/09/scala-coroutines.html. Hoặc có thể sử dụng luồng thông điệp không chặn? (http://blog.typesafe.com/non-blocking-message-flow-with-akka-actors) – VonC
Vui lòng xem câu trả lời của tôi ở đây http://stackoverflow.com/questions/1512066/is-there-any-non -blocking-io-open-source-implementation-cho-scalas-diễn viên –