摘要: 1.数据输入 id name parent_id 1 aa 2 bb 3 cc 1 4 dd 1 5 ee 2 var data = [ {id: 1, name: 'aa'}, {id: 2, name:'bb'}, {id: 3, name: 'cc', parent_id: 1}, {id: 阅读全文
posted @ 2021-10-21 15:36 Cozy11 阅读(415) 评论(0) 推荐(0)
摘要: 一、实现Callable接口步骤 1.创建一个实现callable的实现类2.实现call方法,将此线程需要执行的操作声明在call()中3.创建callable接口实现类对象4.将此Callable接口实现类的对象作为参数传递到FutureTask构造器中,创建FutureTask的对象5.将Fu 阅读全文
posted @ 2021-07-22 15:32 Cozy11 阅读(51) 评论(0) 推荐(0)
摘要: 一、插入排序算法概念 将待排序的数组看成一个有序的数组和一个无序的数组,一般取数组的第一个元素为有序,后面其余的为无序,将无序的一个元素即排序数组的第2个元素,与有序数组的最后一个元素依次向前比较,找到正确的插入位置 二、具体分析 以数组[220,52,43,510,12]为例 开 始:[220], 阅读全文
posted @ 2021-07-19 23:33 Cozy11 阅读(62) 评论(0) 推荐(0)
摘要: 一、线程的死锁问题 1、死锁 (1)不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的向步资源,就形成了线程的死锁。 (2)出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续。 2、解决方法 (1)专门的算法、原则。 (2)尽量减少同步资源的定义 (3 阅读全文
posted @ 2021-07-16 23:58 Cozy11 阅读(57) 评论(0) 推荐(0)
摘要: 主要讲述实现Runnable接口创建多线程步骤以及继承Thread类和实现Runnable接口两种方式创建线程方式的比较 阅读全文
posted @ 2021-07-03 22:57 Cozy11 阅读(208) 评论(0) 推荐(0)
摘要: 多线程创建方式一:继承Thread类 一、继承Thread类方式创建多线程步骤 1.创建一个继承于Thread类的子类2.重写Thread类的run() >将此线程执行的操作声明在run()中3.创建Thread类的子类的对象4.通过此对象调用start()例子:创建两个分线程,一个遍历100以内的 阅读全文
posted @ 2021-07-03 22:31 Cozy11 阅读(232) 评论(0) 推荐(0)