그래서 stackoverflow에 대한 질문은 한 가지 방법 또는 다른 방법으로 미래를 "죽이는"방법을 묻는 것입니다 (비추천 Thread.stop()). 나는 그것이 불가능한 이유를 설명하는 대답을 보지만 유사한 문제를 해결할 수있는 대안은 아닙니다. 예를 들어다중 스레드 스칼라의 긴 프로세스에 대한 관용적 인 시간 초과
". 살해"나는 미래가 될 수 없다 실현 Practical use of futures? Ie, how to kill them?
내가 어떻게 이런 방식으로 Java를 수행 할 수 있는지 알았습니다. 태스크를 더 작은 수면 상태로 분해하고 주기적으로 검사되는 스레드 클래스에서 "휘발성 부울 isStillRunning"을 사용하십시오. 이 값을 업데이트하여 스레드를 취소 한 경우 스레드가 종료됩니다. 여기에는 "공유 상태"(isStillRunning var)가 포함됩니다. 스칼라에서 동일한 작업을 수행하는 경우 매우 기능적으로 보이지 않습니다.
관용적 기능 스칼라에서 이런 종류의 문제를 해결하는 올바른 방법은 무엇입니까? 그것을하는 합리적으로 간결한 방법 있는가? "정상적인"스레딩 및 휘발성 플래그로 되돌려 야합니까? Java 키워드와 같은 방식으로 @volatile를 사용해야합니까?
글쎄, 나는 미래를 언급했으나 질문의 제목은 "멀티 스레드 스칼라에서 긴 프로세스에 대한 관용적 인 타임 아웃"입니다. 문제의 종류에 대한 관용적 인 해결책을 찾고있었습니다. 반드시 미래 나 배우가 아닙니다. 당신은 솔루션이 "자바에서와 똑같이 보일 것"이라고 말했지만, 그 문제를 해결할 수있는 완전한 관용적 인 방법을 보여주었습니다. Akka의 블로그는 모든 작업이 끝난 후 배우가 계속 종료되도록하는 것에 관한 것이 었습니다. 배우가 아직 진행중인 작업을 중지 할 방법을 찾고있었습니다. 스칼라와 동일합니다. http://stackoverflow.com/a/3194586/ 621233 – Brian
btw ... Akka에서 이것을 수행하는 방법을 알고 싶습니다 ... 이것은 오래된 스칼라 배우 였고 스칼라 2.10으로 포팅하는 방법을 알 수없는 코드가 있습니다. – Brian