学习记录

Posted 灵剑山真人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习记录相关的知识,希望对你有一定的参考价值。

2021.8.19

1:协程的代码效率不一定比多线程高,因为协程内部就是多线程(?)

  协程可以使异步的代码写成同步,便捷易懂。

 

传统方式弊端,异步线程请求服务器,取得数据利用handler发送数据给主线程

 

对于有suspend的函数,自动开启异步线程

main主线程{


suspend函数(自动切出去又切回来)

更新ui
}

 

 

2021.8.20

suspend函数内部得 手动开启协程

suspend的意义是什么

 

viewmodelScope {}默认主线程

 

suspend函数内部 withContext(Dispatcher....){}

主线程到IO线程——为协程的挂起 suspend

IO线程到主线程——为协程的恢复 resume

 

suspend起提醒作用,真正起挂起作用的是withContext里面的代码块

 

launch(Dispatchers.Main){
  withContext(dispatchers.IO){}  
    withContext(dispatchers.IO){}
}

变成

launch(Dispatchers.Main){
func1()
func2()
  
}

suspend fun func1(){
  withContext(dispatchers.IO){}  
}

suspend fun func2(){
  withContext(dispatchers.IO){}  
}

 

 

协程就是线程的上层框架

 

Room的一个实体类在内部对应的就是一个数据库表,然后一个实体的实例就是表的一行

 

默认情况下,Room 使用类名作为数据库表名。如果您希望表具有不同的名称,请设置注释的 tableName属性 @Entity同样,Room 默认使用字段名作为数据库中的列名。如果您希望列具有不同的名称,请将@ColumnInfo注释添加 到该字段并设置该name 属性。以下示例演示了表和列的自定义名称:

 

官方文档,entity   DAO   Database

 

以上是关于学习记录的主要内容,如果未能解决你的问题,请参考以下文章

golang代码片段(摘抄)

QT 实用代码片段

CSP核心代码片段记录

记录C#常用的代码片段

discuz X3.1 源代码阅读,记录代码片段

提效小技巧——记录那些不常用的代码片段