내가 아는 한, 스칼라는 액터를 실행하고 스레드를 공유하기 위해 스레드 풀을 관리합니다. 특정 액터를 독점적으로 별도의 스레드에서 실행하도록 설정하고, 다른 액터와 절대 공유하지 않을 수 있습니까?별도의 스레드를 독점적으로 사용하여 실행하도록 스칼라 액터를 설정하는 방법은 무엇입니까?
3
A
답변
2
스칼라 (아카가 아님) 배우를 사용하는 것처럼 들립니다. 이 경우 receive
또는 receiveWithin
메시지 처리 스타일을 사용하면 각 액터에 자체 스레드가 생깁니다. react
메시지 처리 스타일을 사용하면 액터간에 스레드 풀을 공유합니다. 나는 receive
"스타일"을 말할 때
, 내가 예를 들어, 루프에서 의미 :이 경우 timerActor
에서
val timerActor = actor {
while (true) {
receiveWithin(60 * 1000) {
case Stop => self.exit()
case TIMEOUT =>
destination ! Tick
}
}
}
다른 배우와의 스레드를 공유하지 않습니다. receiveWithin
은 액터가 Stop 메시지를 수신하거나 60 초가 경과 할 때까지 차단됩니다. 60 초가 경과하면 TIMEOUT 경우가 실행됩니다.
스칼라 배우에 대한 자세한 내용은 Actors That Unify Threads and Events을 확인하십시오.
Akka는 이벤트 기반 액터 외에 스레드 기반 액터도 지원합니다.
관련 문제
- 1. 스칼라 액터를 사용하여 모든 코어를 최대한 활용하는 방법은 무엇입니까?
- 2. 스칼라 액터를 실제로 사용하여 응용 프로그램 작성하기
- 3. 원격으로 생성 된 액터를 얻는 방법은 무엇입니까?
- 4. 스칼라에서 액터를 사용할 때 동시성을 제한하는 방법은 무엇입니까?
- 5. Sharepoint에서 다운로드 대신 PHP 파일을 실행하도록 설정하는 방법은 무엇입니까?
- 6. 액터를 사용하여 코어 악용
- 7. 별도의 스레드를 사용하여 http 요청을 수행하는 방법
- 8. 핸들러에서 새 액터를 만들 때이 스칼라 액터가 차단됩니까?
- 9. ant 타겟을 서로 독점적으로 만드는 방법은 무엇입니까?
- 10. BeginInvoke()는 별도의 스레드를 실행합니까?
- 11. 데이터베이스에서 액터를 초기화하는 가장 좋은 방법은 무엇입니까
- 12. 각 파일 시스템 감시자에 별도의 스레드를 할당하는 방법은 무엇입니까?
- 13. 실행 스레드를 별도의 스레드에서 중지하십시오.
- 14. 소켓이있는 별도의 스레드를 죽이는 경우
- 15. 로깅 처리기가 별도의 스레드를 사용합니까?
- 16. Cron 스크립트를 매일 실행하도록 설정하는 방법
- 17. 액터를 사용하여 여러 메시지 보내기 + 처리
- 18. 코드를 매일 실행하도록 반복 AlarmManager를 설정하는 방법
- 19. Java에서 별도의 스레드를 사용하여 둘 이상의 webservice를 호출 하시겠습니까?
- 20. 수익률을 설정하는 스칼라
- 21. 스레드를 동기화하는 방법은 무엇입니까?
- 22. 스레드를 캡슐화하는 방법은 무엇입니까?
- 23. UIPageViewController를 사용하여 별도의 XIB를로드하는 방법은 무엇입니까?
- 24. CXF에서 범위를 설정하는 방법은 무엇입니까?
- 25. perl 해시 참조에서 스칼라 목록을 설정하는 방법은 무엇입니까?
- 26. 녹아웃은 독점적으로 이벤트 구동입니까?
- 27. 별도의 메시지 루프가있는 스레드를 종료하려면 어떻게해야합니까?
- 28. 레일은 독점적으로
- 29. Eclipse없이 server.xml을 Tomcat에서 실행하도록 구성하는 방법은 무엇입니까?
- 30. Windows Forms - 별도의 스레드를 걷어 내고 현재 스레드를 유지하는 방법
왜 이것을 원하니? –
@ pablo-fernandez는'java.lang.Thread.sleep (long millis)'를 안전하게 사용하고, 같은 스레드를 공유 할 수있는 다른 액터를 동결시키지 않는다. 실제 작업은 틱 메시지를 보내는 것 사이에 잠든 타이머 액터를 만드는 것입니다. – Ivan
관련 스레드의 세부 제어가 필요한 경우 Executor 프레임 워크를 사용합니다. –