1 協程 :協程是輕量級的線程,一個跟線程很是相似的用於處理多任務的概念,輕量級的線程框架
2 在kotlin 協程就是一套官方提供的線程API就像java的Executor 和Android的AsyncTask
3 一個線程框架,好在方便!可以在同一個代碼塊裏進行屢次線程切換!用同步的方式寫異步的代碼複製代碼
在Lauch函數裏直接使用線程 IO\Main (對應子線程\主線程)java
建立一個新的協程,在指定的線程(Io or Main)上運行它,在函數體裏面代碼就是被運行的協程bash
當你須要切線程或者在指定線程的時候使用,在後臺獲取數據運行 ?切 !在前臺更新?再切!多線程
No! 像極了嵌套式開發併發
這裏在某個線程函數體裏切換線程 須要用到 withContext 函數,咳咳 一等公民蠻!框架
withContext() 是一個被suspend修飾符的函數 異步
協程擁有自動切回來的功能 !消除了併發代碼在協做時的嵌套!!!!!ide
搞錯了! 再來函數
像這樣 簡單 易了! 能讓多線程之間進行協做式例程post
withContext函數若是要被在一個普通函數(suspenddingGetImage())裏做爲邏輯處理 ,就須要 suspend 申明,你本身申明的函數方可在協程塊裏的代碼被調用,不然報錯!spa
第二節筆記 掛起 juejin.im/post/5d84dc…
視頻課 www.bilibili.com/video/av671… @扔物線 期待下一節協程講課