ThreadPool implementation nella biblioteca clojure core.async utilizza un FixedThreadPoolExecutor di size = # di core * 2 + 42.Perché il threadpool per core.async in clojure è stato creato con un pool di thread fisso di # di core volte 2 più 42?
(defonce the-executor
(Executors/newFixedThreadPool
(-> (Runtime/getRuntime)
(.availableProcessors)
(* 2)
(+ 42))
(conc/counted-thread-factory "async-dispatch-%d" true)))
C'è un motivo per utilizzare questi numeri (Numero di core 2 volte più 42) a particolare? È ottimale per tutti i dispositivi? Voglio solo sapere come si sono risolti i ricchi hickey (e contributori) con questi numeri.
Grazie nullptr.
Ecco la discussione per coloro che sono interessati: http://clojure-log.n01se.net/date/2013-08-29.html#15:45a
Questo algoritmo è stato introdotto [qui] (https://github.com/clojure/core.async/commit/7b64bd8a22c2b6df69c23dce34eb66d705f5bf1a). Potresti provare a chiedere all'autore [https://github.com/halgari]. – user100464