Tôi đã đọc tài liệu về akka và không thể hiểu rõ về tương tác luồng khi sử dụng akka. Tài liệu có thể bỏ qua điều này là hiển nhiên nhưng nó không quá rõ ràng đối với tôi.Làm cách nào để diễn viên akka tương tác giữa các chủ đề
Tất cả diễn viên akka dường như được chạy trong cùng một chuỗi họ được gọi. Tôi thấy các diễn viên là đồng thủ tục mà chỉ có thiết lập lại stack riêng mỗi lần nhận được gọi.
Bạn có thể thực hiện một chuỗi lớn các diễn viên chuyển đổi theo đường thẳng. Mỗi nhận được thực hiện hoạt động không chặn nhỏ và buộc một người khác nhận được để làm việc hơn nữa. Không có vòng lặp sự kiện, có thể xử lý các thông báo bên ngoài hệ thống diễn viên.
Tôi muốn nhận yêu cầu từ chủ đề khác, thực hiện thao tác kiểm soát và đợi một tin nhắn khác.
Có một số trường hợp sử dụng thể hiện nhu cầu của tôi.
Có chuỗi liên tục bỏ phiếu dữ liệu từ một số nguồn. Khi dữ liệu khớp với mẫu, nó sẽ gọi trình xử lý theo hướng sự kiện dựa trên các tác nhân. Bộ điều khiển hợp lý đưa ra quyết định và chuyển nó cho người lao động. Nên có hai chuỗi liên tục. Một luồng hoạt động liên tục trên việc bỏ phiếu và một luồng khác hoạt động không đồng bộ để kiểm soát nó hoạt động. Bạn không nên để các diễn viên akka cho chủ đề đầu tiên kể từ khi họ phá vỡ các giai đoạn bỏ phiếu và chủ đề đầu tiên không nên chặn các diễn viên để họ cần một chủ đề khác.
Có một số loại trò chơi trên bảng hai mặt. Một bên có một chuỗi điều khiển lịch trình thời gian tính toán hoạt động tương tác với máy chủ bảng và etcetera. thread khác là a thread tính toán nặng mà vòng qua các biến thể khác nhau và không thể được viết bằng AKKA vì nó đã chặn chất
Tôi nhận thức AKKA kỳ hạn hiện có, nhưng họ đại diện cho một nhiệm vụ làm việc mà chạy một lần bị sa thải và tắt xuống sau khi thực hiện mục tiêu của họ. Tương lai cũng được kết hợp với các diễn viên akka, nhưng không thể diễn tả các chuỗi làm việc lặp lại.
Hệ thống diễn viên Akka kết hợp các loại vòng sự kiện mạng khác nhau. Bạn có thể sử dụng hệ thống diễn viên từ xa tích hợp sẵn hoặc giao thức 0mq nổi tiếng. Nhưng việc sử dụng mạng cho các tương tác luồng có vẻ như quá mức đối với tôi.
Cách được cho là để dán chủ đề không phải là akka bằng sợi akka? Tôi có nên viết một vài thủ tục đặc biệt để thực hiện thông điệp truyền đi theo cách an toàn không?
tốt, tôi không nghĩ rằng chúng tôi bỏ qua tất cả những điều đó: http://akka.io/docs/akka/2.0-RC4/scala/dispatchers.html –
Một sửa đổi khác: diễn viên akka không chạy trên cùng chủ đề chúng được gọi, xem nhận xét trước của tôi về tài liệu. Các diễn viên không phải là đồng thủ tục. “Stack reset” không phải là một khái niệm được JVM hỗ trợ. Các mô hình diễn viên là một mức độ trừu tượng cao hơn so với chủ đề. Việc truyền các thông điệp tới một diễn viên luôn luôn là luồng an toàn (xem 'ActorRef.tell()') –
Tôi đề nghị bạn kiểm tra akka bằng cách tích hợp lạc đà apache để biết cách trả lời các sự kiện bên ngoài. Cuốn sách Akka Essentials http: //www.packtpub.com/akka-java-applications-essential/book có một mô tả rõ ràng về mô hình luồng với nhiều mẫu mã có thể chạy được trong cả Java và Scala để có được tất cả các nguyên tắc cơ bản. – simbo1905