либы async await и наткнулся вот на такой код
private class AsyncThreadFactory(val name: String) : ThreadFactory {
private var counter = 0
override fun newThread(r: Runnable): Thread {
counter++
return Thread(r, "$name-$counter")
}
}
Правильно ли я понимаю, что это эквивалентно new Thread? Что-то я уже запутался. Спасибо.
Ну так это же просто “стандартный подход”, что бы задать тредам нормальные имена (что бы при дебаги их видеть). Это фабрика будет реально вызваться когда нужен будет новый тред, НО выше же он передается в single-thread-executor, который еще и кешируется. return executors.getOrElse(this) { val newExecutor = Executors.newSingleThreadExecutor(AsyncThreadFactory(threadName)) executors[this] = newExecutor newExecutor }
Обсуждают сегодня