2014-01-27 2 views
1

액터 클래스를 정의 할 때 스레드 이름을 설정하는 명백한 방법을 볼 수 없습니다.스칼라 : 액터 스레드 이름을 설정하는 방법

누구나 올바른 방법을 말해 줄 수 있습니까? 자신의 코드가 스레드 풀에서 실행되는 경우에도

감사 데

+0

저는 Akka Actor 클래스를 말하는 것이 아니라, Akka 라이브러리를 기반으로하지만 scala Actor 클래스를 올바르게 이해한다면 동일하지 않습니까? 내가 묻는 이유는 로그 파일의 관련 스레드를 명확히하기 위해 스레드 이름을 디버깅 목적으로 설정하고 싶다는 것입니다. – user79074

+1

'scala.actors'는 사용되지 않으며 Akka 액터와 관련이 없습니다. – Ryan

+0

그렇다면 Akka 배우 라이브러리를 사용해야합니까? – user79074

답변

3

Akka 배우 당신이 배우의 이름을 참조 경우 (Akka documentation에서)로 설정할 수 있습니다, 스레드에 해당되지 않습니다

class FirstActor extends Actor { 
    val child = context.actorOf(Props[MyActor], name = "myChild") 
    // plus some behavior ... 
} 

모든 액터에는 실제 액터의 프록시 인 ActorRef를 얻기 위해 질의 할 수있는 경로가 있습니다. 액터 참조 및 경로에 대한 추가 정보가 필요하면 Akka docs의 다른 부분을 읽을 수 있습니다.

+2

자신 만의 ExecutionContext를 만들면 원하는 이름을 스레드에 제공 할 수는 있지만 fluid actor-> thread 매핑과 관련된 문제는 여전히있을 것입니다. 많은 이점. –

+0

@RobStarling yeas 나는 Akka가 이러한 종류의 갈고리를 가지고 있다고 생각하지만 OP가 너무 많이 읽었을 것이라고 생각했습니다! :) –

관련 문제