Kotlin教程 协程-基础讲解

一.简介

协程是一种并发设计模式,您可以在Android平台上使用它来简化异步执行的代码

协程作为谷歌在 Android 上进行异步编程推荐解决方案。具有以下优点:

1.轻量:您可以在单个线程运行多个协程,因为协程支持挂起,不会使正在运行协程的线程阻塞挂起比阻塞节省内存,且支持多个并行操作


2.内存泄漏更少:使用结构化并发机制一个作用域内执行多项操作
 

3.内置取消支持:取消功能会自动通过正在运行的协程层次结构传播。
 

4.Jetpack 集成:许多 Jetpack 库都包含提供全面协程支持的扩展。某些库还提供自己的协程作用域,可供您用于结构化并发。

官方文档:Android 上的 Kotlin 协程  |  Android Developers

二.引入协程

application.gradle

buildscript {

    ext {
        kotlin_version = '1.5.10'
    }

    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath "com.android.tools.build:gradle:4.2.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }

}

app.gradle

dependencies {

    //Kotlin
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    //协程核心库
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3"
    //协程Android支持库
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.3"
    //协程Java8支持库
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.4.3"

}

三.简单使用协程

代码

package com.example.myapplication.kotlin

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.example.myapplication.R
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch

class KotlinActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_kotlin)

        testCoroutine()

    }

    private fun testCoroutine() {
        GlobalScope.launch {
            Log.d("KotlinActivity", "GlobalScope.launch方法运行...")
            Log.d("KotlinActivity", "GlobalScope.launch方法线程:${Thread.currentThread().name}")
        }
        Log.d("KotlinActivity", "线程:${Thread.currentThread().name}")
    }

}

结果

D/KotlinActivity: 线程:main

D/KotlinActivity: GlobalScope.launch方法运行...

D/KotlinActivity: GlobalScope.launch方法线程:DefaultDispatcher-worker-1

说明

1.协程的作用域线程是DefaultDispatcher-worker-1,而默认的线程是main。

2.GlobalScope:Global:全局的  Scope:范围&作用域。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值