Почему ForkJoinPool был создан для Scala?
Какая реализация и для какого случая предпочтительнее?
Почему ForkJoinPool был создан для Scala?
Какая реализация и для какого случая предпочтительнее?
Очевидная причина, по которой библиотека scala должна иметь собственную копию ForkJoinPool, заключается в том, что scala должна работать на JVM до версии 1.7, а ForkJoinPool
появилась только в Java 1.7.
Кроме того, было сделано несколько изменений для внутреннего (scala) использования, например:
https://github.com/scala/scala/commit/76e9da2ca4c31daec2b04848c3c2dbad6ecd426e
Учитывая, что версия scala, вероятно, не даст вам никаких преимуществ (если вы компилируете и работаете с java 1.7), я бы сказал, что для собственного использования вам, вероятно, следует использовать версию java. По крайней мере, версия java точно задокументирована и полностью «общедоступна», в то время как статус версии scala неясен (она вполне может быть предназначена только для внутреннего использования). Однако в некоторых местах у вас может не быть выбора. Например, ForkJoinTasks
имеет метод forkJoinPool
, который ожидает scala-версию ForkJoinPool
. Если кто-то может получить/найти какой-либо официальный статус версии ForkJoinPool
для scala, утверждающий, что она действительно общедоступна и стабильна, я с радостью вернусь к этому совету.