Avatar ·

ما الفرق بين Thread و Coroutine في Kotlin؟

مرحباً بالجميع! بدأت تعلم Kotlin و Coroutines، لكنني لا أستطيع فهم الفرق الأساسي بين Thread العادي و Coroutine. \n\nيبدو أن كليهما يسمح بتنفيذ الكود بشكل متوازٍ أو غير متزامن. قرأت التوثيق، لكنه مكتوب بطريقة معقدة. على سبيل المثال، كتبت مثالاً بسيطاً باستخدام 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\nوالنسخة المكافئة باستخدام Coroutines:\n\n```kotlin\nfun main() = runBlocking {\n print