Kotlin 協程筆記 先蹩一眼 (一)描述

1 協程 :協程是輕量級的線程,一個跟線程很是相似的用於處理多任務的概念,輕量級的線程框架
2 在kotlin 協程就是一套官方提供的線程API就像java的Executor 和Android的AsyncTask
3 一個線程框架,好在方便!可以在同一個代碼塊裏進行屢次線程切換!用同步的方式寫異步的代碼複製代碼
  • 特性:非阻塞式掛起 (協程掛起,讓出線程)
  • 基本功能:處理多線程併發 
  • 方便性:解決回調式地獄開發 ,改變操做併發的難度,能夠把運行在不一樣線程裏的代碼 寫在同一個代碼塊裏,上下兩行代碼,線程切走再切回來 ,不帶走一片雲彩


怎麼用

在Lauch函數裏直接使用線程 IO\Main (對應子線程\主線程)java

建立一個新的協程,在指定的線程(Io or Main)上運行它,在函數體裏面代碼就是被運行的協程bash

何時用

當你須要切線程或者在指定線程的時候使用,在後臺獲取數據運行 ?切 !在前臺更新?再切!多線程


No! 像極了嵌套式開發併發

這裏在某個線程函數體裏切換線程 須要用到 withContext 函數,咳咳 一等公民蠻!框架

withContext() 是一個被suspend修飾符的函數 異步


協程擁有自動切回來的功能 !消除了併發代碼在協做時的嵌套!!!!!ide

搞錯了! 再來函數

像這樣 簡單 易了! 能讓多線程之間進行協做式例程post

suspend 非阻塞式、掛起函數  (協程掛起,讓出線程)

withContext函數若是要被在一個普通函數(suspenddingGetImage())裏做爲邏輯處理  ,就須要 suspend 申明,你本身申明的函數方可在協程塊裏的代碼被調用,不然報錯!spa

第二節筆記 掛起 juejin.im/post/5d84dc…

視頻課 www.bilibili.com/video/av671…   @扔物線 期待下一節協程講課

相關文章
相關標籤/搜索