01 2021 档案

摘要:await/async 是一个语法糖,本身不会产生新的线程,但是依托于Task而存在,所以执行时,也是会有多线程。 async可以没有await,但await一定要有async,并且只能只能出现在task前面。 原来没有返回值的方法,用await/async修饰后,会返回Task 原来有返回值T的方 阅读全文
posted @ 2021-01-06 19:51 luytest 阅读(226) 评论(0) 推荐(0)
摘要:多线程去访问同一个集合,一般没问题,线程安全问题一般是出在同时修改一个对象的时候。 线程安全问题:一段代码,单线程执行和多线程执行,结果不一致。 例如这个方法,很简单,循环开启task往一个list里add,等3秒钟执行完后打印出来List的长度,如果是单线程,肯定是10000,现在看看多线程的结果 阅读全文
posted @ 2021-01-05 21:05 luytest 阅读(297) 评论(0) 推荐(0)
摘要:Task task可以说是多线程的最佳实现: 1.task用的是线程池的线程,节省了资源,不用像Thread那样麻烦; 2.封装了丰富的方法,很方便。 创建task对象的方式有很多,这里介绍几个常用的: 用Start方法启动无参数无返回值的委托 直接new实例化Task对象并调用Start方法。 p 阅读全文
posted @ 2021-01-03 21:15 luytest 阅读(134) 评论(0) 推荐(0)
摘要:基础概念 进程:程序运行时,占据的计算资源的合集,称为进程,如qq、word都是一个进程。 进程之间不会互相干扰。 线程:依托于进程,一个进程可以有多个线程,它是程序执行的最小单位,响应操作的最小执行流,如果说qq是一个进程,那么聊天,发图片,截图,加好友这些,都可以算作线程。 多线程:指在一个进程 阅读全文
posted @ 2021-01-02 20:39 luytest 阅读(266) 评论(0) 推荐(0)
摘要:二叉排序 之前看过这个图,这种的查找方法就是,先比较根节点,小于它,就往左查,大于它就往右查,等于就不用我说了吧,然后按这个思路,一层一层往下,直到查到或到叶子还没有查到为止。 B Tree 和 B+Tree B 树 B+ 树 区别: 1. B+树中,非叶结点只有索引作用,只包含关键字和指向子树关键 阅读全文
posted @ 2021-01-01 23:39 luytest 阅读(121) 评论(0) 推荐(0)
摘要:树的概念 常用的树的种类 二叉树 所有节点最多只有2个子节点,分为左,右节点。 满二叉树 就是每个节点(除了叶子节点)都有2个子节点的二叉树。 完全二叉树 左图就是右图这个满二叉树的完全二叉树,说白了就是除了叶子结点,其他节点的跟满二叉树必须一模一样,叶子节点可以不一样,但是也必须是倒序的缺少一部分 阅读全文
posted @ 2021-01-01 21:40 luytest 阅读(289) 评论(0) 推荐(0)
摘要:线性表是由N个数据元素组成的有序序列。 它在计算机中有顺序存储结构和链式存储结构。 顺序存储结构:把逻辑上相邻的数据元素存储在物理上相邻的存储单元中,也就是一组连续的存储单元。 优点:知道某个元素的存储位置,通过计算就能知道其他元素的存储位置。 缺点:新增和删除需要调整其他数据元素的存储地址,麻烦。 阅读全文
posted @ 2021-01-01 20:44 luytest 阅读(238) 评论(0) 推荐(0)