Quelle est la différence entre un Thread et une Coroutine en Kotlin ?
Bonjour à tous ! J'ai commencé à étudier Kotlin et les coroutines, mais je n'arrive pas à comprendre la différence fondamentale entre un thread normal (Thread) et une coroutine (Coroutine). \n\nApparemment, les deux permettent d'exécuter du code en parallèle ou de manière asynchrone. J'ai lu la documentation, mais c'est écrit de manière compliquée. Par exemple, j'ai écrit un exemple simple avec des threads :\n\n```kotlin\nfun main() {\n println("Main starts: ${Thread.currentThread().name}")\n \n val thread = Thread {\n println("Thread working: ${Thread.currentThread().name}")\n Thread.sleep(1000)\n println("Thread done")\n }\n thread.start()\n \n println("Main continues: ${Thread.currentThread().name}")\n thread.join()\n println("Main ends")\n}\n```\n\nEt l'équivalent avec des coroutines :\n\n```kotlin\nfun main() = runBlocking {\n print