# How are Kotlin's Coroutines different from Java's Executor in Android?

**URL:** <https://discuss.kotlinlang.org/t/how-are-kotlins-coroutines-different-from-javas-executor-in-android/12326>\
**Category:** Android\
**Created:** [April 12, 2019, 12:38pm UTC](https://discuss.kotlinlang.org/t/how-are-kotlins-coroutines-different-from-javas-executor-in-android/12326 "2019-04-12T12:38:48Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![lymoge](https://avatars.discourse-cdn.com/v4/letter/l/f04885/32.png) [@lymoge](https://discuss.kotlinlang.org/u/lymoge)\
**Post date:** [April 16, 2019, 4:34am UTC](https://discuss.kotlinlang.org/t/how-are-kotlins-coroutines-different-from-javas-executor-in-android/12326/2 "2019-04-16T04:34:37Z")

</div>

I had a same question before, but my English is poor.

> [@Coroutine or ThreadPool for non-wait simple task](https://discuss.kotlinlang.org/t/12097):
>
> I used to replace all my async code with coroutine which uses custom thread pool as dispatcher. Now I’m reviewing my code and thinking about why need to use coroutine on a simple task that don’t wait for another task. For example: GlobalScope.launch(mainThreadHandlerDispatcher) { val t = withContext(computationDispatcher) { builder() } weakRef.get { text = t } } submitToComputationPool { val t = builder() runOnUi { weakRef.get { text =…

---

_[View the full topic](https://discuss.kotlinlang.org/t/how-are-kotlins-coroutines-different-from-javas-executor-in-android/12326)._
