ExecutorService를 (자바/Clojure의) 내부 스레드를 잠자는 : 그것은 나를 위해 JVM을 사이에 지났는데 나는 기본적으로 여기 궁금내가 스레드 오히려 거대한 수는 Clojure의 프로그램 내에서 생성되는이
(import '(java.util.concurrent Executors))
(def *pool*
(Executors/newCachedThreadPool))
(defn do-something []
; work
Thread/sleep 200
; repeat)
(dotimes [i 10000]
(.submit *pool* do-something))
Executor가 실행중인 함수 내에서 sleep 또는 yield 사용에 대한 인수가있는 경우? 이 경우 올바르게 이해하면 모든 직원은 자체 스레드를 가지므로 부작용이 없어야합니다.
집행자는 FixedThreadPool 사용하는 경우 : 자신의 작업이 완료 될 때까지 스레드 풀에 반환되지 않기 때문에
(Executors/newFixedThreadPool 1000)
일들이 경우 완료하는 데 시간이 오래 걸릴 것입니다 다른 대기중인 근로자를 의미, 더 복잡하게를 스레드가 자고 있습니다.
스레딩에 대한 이해가 정확합니까?
(참고 : 내 디자인은 실제로 잘못 생각하지만, 단지 내가 오른쪽 페이지에 오전 있는지 확인하려면)