Kotlin 标准库为几种有用的委托提供了工厂方法。 延迟属性(lazy properties): 其值只在首次访问时计算; 可观察属性(observable propert...
Kotlin 标准库为几种有用的委托提供了工厂方法。 延迟属性(lazy properties): 其值只在首次访问时计算; 可观察属性(observable propert...
基础知识 并发编程引发的问题 并发编程需要关注两个问题. 线程之间是如何通信的? 线程之间是如何同步数据的? 在现有的通信机制中, 有两大类. 共享内存 和 消息传递. 进程...
什么是线程 线程(thread) 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并...
进程与线程 什么是进程 进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在当代面向线程设计...
有点问题啊.
在下载是,断网了3次,就不能下载了,一直在onWait方法里
当出现网络错误超过3次,超过了线程池的核心任务数之后,就会出现一直出现onWait,不会继续下载了
原因是因为在FileTask里,循环没有退出,
while (tempChildTaskCount < childTaskCount) {
//由于每个文件采用多个异步操作进行,发起多个异步操作后该线程已经结束,但对应文件并未下载完成,
//则会出现线程池中同时下载的文件数量超过设定的核心线程数,所以考虑只有当前线程的所有异步任务结束后,
//才能使结束当前线程。
}
这里没跳出去,线程一直结束不了.
应该在startSaveRangeFile方法里,将
...
} finally {
Utils.close(saveRandomAccessFile);
Utils.close(saveChannel);
Utils.close(inputStream);
Utils.close(tempRandomAccessFile);
Utils.close(tempChannel);
Utils.close(response);
addCount(); //放在这里计数.
}
将addCount放在finally里面计数
而且,将tempChildTaskCount用volatile修饰.
光加同步锁还是会出现tempChildTaskCount没有被更新的情况,导致循环跳不出.
追了几天,终于解决了这个bug
枚举类实现Parcelable的写法如下: 当枚举类为一个类的成员变量,并且该类也要实现Parcelable接口时,则先让枚举类实现Parcelable接口,
——徐宏亮 原创 江湖人称北乔峰, 盛名之下无虚士; 降虎擒龙太祖拳, 天下英雄莫能挡。 明知虎穴吾偏往, 单刀赴宴会群英; 男儿重义轻生死, 血溅当场何所惧? 今日饮酒断恩...
刷抖音的时候,无意间刷到 心形函数的动画,觉得很有意思, 就简单的用Android的方式实现了一下. 心形函数公式 公式 : X的取值范围:[-1.81,1.81],该取值范...
代理模式 使用代理模式创建代理对象,让代理对象来控制对某个对象的访问, 被代理对象可以是远程对象,创建开销大的对象或者需要安全控制的对象等. Proxy 称为代理对象.Rea...
什么是反射 Reflection is a feature in the Java programming language. It allows an executing ...
Demo的源码地址在 mini-butterknife, 有兴趣的可以下载源码来看. Butterknife 框架介绍 butterknife是一款View注入的框架,在an...
一, 函数管理 提供了一组方法,来实现C++方法被调用 和 去调用js方法的功能 1.调用JavaScript方法 example 2.创建JavaScript方法 该函数创...
Android 中 Message的应用 Message 在Android中主要是在 消息循环机制 中使用,即配合 Handler,Looper和MessageQueue来进...
Demo的源码地址在 mini-rxjava, 有兴趣的可以下载源码来看. 从观察者模式说起 观察者模式,是我们在平时使用的比较多的一种设计模式.观察者模式定义了一种一对多的...
Android中位域的应用 在Android中,我们会经常用到或者看到以下这样的代码 : 通过一个 int字段,来添加多个 标志或者状态. 一个int字段,能够管理多个标记(...
头文件 #include<future> ,在Linux下需要添加 -lpthread 参数 std::async 本质上是创建一个线程,使用传递的任务方法在线程中运行, 通...
泛型编程即以一种独立于任何特定类型的方式编写代码。 模板类型 一,模板参数 指定形式参数类型和返回参数类型, 模板参数不允许自动类型转换 二,模板函数 1.隐式指定 2.显式...
对于泛型的原理和基础,可以参考笔者的上一篇文章java泛型,你想知道的一切 一个问题代码 观察以下代码 : 上述代码中,在调用print函数时,产生了编译错误 require...