2016-10-09 5 views
3

저는 Scala를 처음 사용하고 일부 병렬 구조 (특히 Future)를 사용하려고했습니다.스칼라에서 실행 컨텍스트 란 무엇입니까?

ExecutionContext 유형의 암시 적 매개 변수가 있음을 발견했습니다. IMO, 그것은 thread pool의 개념과 비슷한 (그리고 아마도 더 추상적 인) 것이다. 내가 documentation을 통해 그것을 배우려고했지만, 그것에 대해 명확하고 상세한 소개를 찾을 수 없습니다.

아무도 정확히 실행 컨텍스트가 스칼라에 무엇인지 설명해 주시겠습니까? 그리고 실행 컨텍스트를 언어에 도입하는 목적은 무엇입니까?

감사합니다.

+1

참조 http://docs.scala-lang.org/overviews/core/futures.html – engineerC

+1

실행 컨텍스트를 비동기 명령어 (Futures)의 인터프리터로 생각하십시오.이 컨텍스트는 실행 시간과 실행 시간을 결정합니다. 더 자세한 설명을 원하시면 Viktor Klang의 위대한 이야기를보십시오 https://youtu.be/K9lt6yjuzbM – Yawar

+0

@engineerC, 고마워요. 실제로 제가 제 질문에 넣었던 링크입니다. 그러나 나는 그것이 개념을 명확하게 설명하지 않는다고 생각합니다. –

답변

3

기본적인 아이디어는 매우 간단합니다. 어떤 시점에서 실행될 콜백이 있습니다. 어떤 스레드에서 실행됩니까? 현재 하나? 새로운 것? 수영장에서 하나? 그것은 실행 컨텍스트를 결정하기위한 것입니다. 기본 스레드 (ExecutionContext.global)는 전역 풀의 스레드를 사용합니다 (보유한 CPU 코어의 수로 결정된 스레드 수가 있음).

다른 경우에는 다른 컨텍스트를 사용하는 것이 좋습니다. 예를 들어, Akka 액터는 디스패처를 실행 컨텍스트로 사용할 수 있습니다.

관련 문제