Я изучаю параллелизм в Clojure.
Я столкнулся с претензией (от Стюарта Серры?) на странице http://dev.clojure.org/display/design/Scheduled+Events с указанием:
- Функции Clojure не могут использовать время для потока управления без блокировки или взаимодействия с Java.
- Взаимодействие Java (ScheduledThreadPoolExecutor) не знает о привязках к локальным потокам
Я не понимаю этих утверждений и прошу разъяснений, возможно, примера. Конкретно:
- Что не так с ScheduledThreadPoolExecutor как есть? Поскольку я начинаю новый (зеленый) поток, я не ожидаю, что привязки для каждого потока будут перенесены в любом случае.
- Я могу запланировать обычную функцию Clojure, так что же мешает мне отправить нужные привязки как лексически закрытый контекст?
Большое спасибо!