Android开源框架Universal-Image-Loader就像图片加载守护者,为我们提供了丰富的功能特性:
(1)多线程加载图像(异步或同步);
(2)高度可定制化imageloader配置(线程池、图片下载器、解码器、内存和磁盘缓存、显示图像选项等);
(3)每一个显示图像有许多自定义选项(存根图片,缓存开关,解码选项,位图处理和显示等);
(4)支持内存和磁盘上的图像缓存(设备的...
分类:
移动开发 时间:
2016-05-27 14:53:46
阅读次数:
314
如何保证多线程下的单例。 1多线程安全单例模式一(不使用同步锁). 2.多线程安全单例模式一(使用同步锁). 3.多线程安全单例模式一(使用双重同步锁). ...
分类:
编程语言 时间:
2016-05-27 14:51:18
阅读次数:
146
在Java多线程编程中有时候会遇见线程本地局部变量ThreadLocal这个类,下面就来讲讲ThreadLocal的使用及源码分析。
ThreadLocal 是Thread Local Varial(线程局部变量)的意思,每个线程在使用线程局部变量的时候都会为使用这个线程局部变量的线程提供一个线程局部变量的副本,使得每个线程都可以完全独立地操作这个线程局部变量,而不会与其他线程发生冲突,从线程的角度来看,每个线程都好像独立地拥有了这个线程局部变量。这样,看似每个线程都在并发访问同一个资源(线程...
分类:
编程语言 时间:
2016-05-27 13:04:45
阅读次数:
289
理解重排序
重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境。
在并发程序中,程序员会特别关注不同进程或线程之间的数据同步,特别是多个线程同时修改同一变量时,必须采取可靠的同步或其它措施保障数据被正确地修改,这里的一条重要原则是:不要假设指令执行的顺序,你无法预...
分类:
编程语言 时间:
2016-05-27 12:39:41
阅读次数:
1305
一、基础篇:
1、线程的定义
线程(thread)是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派的基本单位。
2、线程的属性
并发性,共享性,动态性,结构性
3、线程的状态
4、线程的调度
★主要是通过实现Runnable接口和继承Thread类来实现线程的调度和操作
a、Runnabl...
分类:
编程语言 时间:
2016-05-27 12:27:11
阅读次数:
304
加强篇
1、线程互斥锁
a、多线程互斥共享“基本数据类型数据”资源,锁(用synchronized关键字)的必须是对象,基本数据类型的变量不能当作对象锁,同时,要保证多线程使用的是同一个互斥锁(对象锁),才能进行同步。
b、多线程互斥共享“栈”资源
举例:多窗口买票
package thread.ticket.v1;
public class Selli...
分类:
编程语言 时间:
2016-05-27 12:26:07
阅读次数:
167
一、线程生命周期共五个状态:
新建状态:
Thread t = new Thread()
就绪状态
调用start()方法,
运行状态
使用yield()方法可以使线程主动放弃CPU。线程也可能由于执行结束或执行stop()方法进入死亡状态。每个线程对象都有一个run()方法,当线程对象开始执行时,系统就调用该对象的run()方法。
阻塞状态
线程从阻塞状态恢复到就绪状态有三...
分类:
编程语言 时间:
2016-05-27 12:06:35
阅读次数:
246
你一定知道多任务处理,因为它实际上被所有的现代操作系统所支持。然而,多任务处理有两种截然不同的类型:基于进程的和基于线程的。认识两者的不同是十分重要的。对很多读者,基于进程的多任务处理是更熟悉的形式。进程(process)本质上是一个执行的程序。因此,基于进程(process-based)的多任务处理的特点是允许你的计算机同时运行两个或更多的程序。举例来说,基于进程的多任务处理使你在运用文本编辑器...
分类:
编程语言 时间:
2016-05-27 12:06:20
阅读次数:
222
javaNIO是非阻塞的IO。可以用于替代IO操作,但用于对文件的操作时它并不能设置为非阻塞,它的优势体现在网络通信上。从上一篇文章xxx来看,即使使用多线程来处理Socket,但一个线程只能处理一个客户端的请求,单个线程在read的时候还是会阻塞,开销还是很大。如果使用NIO来处理,当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区写入...
分类:
编程语言 时间:
2016-05-27 11:44:58
阅读次数:
231
在前面的博客中如果用到了异步请求的话,也是用到的第三方的东西,没有正儿八经的用过iOS中多线程的东西。其实多线程的东西还是蛮重要的,如果对于之前学过操作系统的小伙伴来说,理解多线程的东西还是比较容易的,今天就做一个小的demo来详细的了解一下iOS中的多线程的东西。可能下面的东西会比较枯燥,但还是比较实用的。
多线程用的还是比较多的,废话少说了,下面的两张截图是今天我们实验的最终结果,应...
分类:
移动开发 时间:
2016-05-27 11:27:34
阅读次数:
276