[SCALA] 어떻게 미래를위한 미세 조정 스레드 풀을 구성하는 방법?
SCALA어떻게 미래를위한 미세 조정 스레드 풀을 구성하는 방법?
미래에 대한 스칼라의 스레드 풀 크기는 얼마입니까?
내 스칼라 응용 프로그램은 미래의 {}의 수백만을하고 내가 스레드 풀을 구성하여이를 최적화하기 위해 할 수있는 일이 있는지 궁금하다.
감사합니다.
해결법
-
==============================
1.대신 글로벌 암시의 ExecutionContext를 가져 오는, 당신의 미래가에서 실행됩니다 자신의 ExecutionContext를 지정할 수 있습니다.
대신 글로벌 암시의 ExecutionContext를 가져 오는, 당신의 미래가에서 실행됩니다 자신의 ExecutionContext를 지정할 수 있습니다.
import java.util.concurrent.Executors import scala.concurrent._ implicit val ec = new ExecutionContext { val threadPool = Executors.newFixedThreadPool(1000) def execute(runnable: Runnable) { threadPool.submit(runnable) } def reportFailure(t: Throwable) {} }
-
==============================
2.이 답변 monkjack, 허용 대답에서 코멘트에서입니다. 내가 여기 다시 게시거야 그래서 그러나, 하나는이 위대한 대답을 놓칠 수 있습니다.
이 답변 monkjack, 허용 대답에서 코멘트에서입니다. 내가 여기 다시 게시거야 그래서 그러나, 하나는이 위대한 대답을 놓칠 수 있습니다.
implicit val ec = ExecutionContext.fromExecutor(Executors.newFixedThreadPool(10))
그냥 스레드 풀 카운트를 변경해야하는 경우, 바로 글로벌 실행기를 사용하여 다음과 같은 시스템 속성을 전달합니다.
-Dscala.concurrent.context.numThreads=8 -Dscala.concurrent.context.maxThreads=8
-
==============================
3.가장 좋은 방법은 스칼라 선물에 스레드 지정합니다 :
가장 좋은 방법은 스칼라 선물에 스레드 지정합니다 :
implicit val ec = new ExecutionContext { val threadPool = Executors.newFixedThreadPool(conf.getInt("5")); override def reportFailure(cause: Throwable): Unit = {}; override def execute(runnable: Runnable): Unit = threadPool.submit(runnable); def shutdown() = threadPool.shutdown(); }
from https://stackoverflow.com/questions/15285284/how-to-configure-a-fine-tuned-thread-pool-for-futures by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 선물과 스칼라의 "에 대한 이해" (0) | 2019.11.08 |
---|---|
[SCALA] 언제, 왜 하나는 스칼라에서 실용적 펑터를 사용한다 (0) | 2019.11.08 |
[SCALA] 스칼라 : 목록 [미래] 미래 [목록]에 실패 미래를 무시 (0) | 2019.11.07 |
[SCALA] 이와 같은 재 시도-수 호출을 구현하는 스칼라 방법은 무엇입니까? (0) | 2019.11.07 |
[SCALA] 함수 프로그래밍 스칼라는지도 왼쪽 접어서 [마감] (0) | 2019.11.07 |