声明:小弟菜狗一个,对ThreadLocal的描述和理解难免有所偏差
最近因为需要深入的了解android的handler消息机制而去查看了Looper的源码。众所周知在主线程中是不需要在程序员在代码新建一个Looper对象的,因为在主线程创建时它就被创建出来了。所以就好奇它是怎么被创建出来的然后发现它跟ThreadLocal 有关于是便查看了该类的一些资料,但还是不太理解。于是...
分类:
其他好文 时间:
2015-08-15 06:46:08
阅读次数:
114
那么在子线程中的UI操作如何处理呢?有两种方法:一:在子线程,你需要进行的UI操作前添加dispatch_async函数,即可将代码块中的工作转回到主线程 dispatch_async(dispatch_get_main_queue(), ^{ //更新UI操作 ...
分类:
编程语言 时间:
2015-08-14 15:21:16
阅读次数:
116
Java 实现定时器Timer 1. Timer和TimerTask Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。 TimerTask是一个实现了Runna...
分类:
编程语言 时间:
2015-08-14 01:24:17
阅读次数:
244
Looper.prepare(); ????????? Toast.makeText(LoginActivity.this,filedId, Toast.LENGTH_LONG).show(); ????????Looper.loop(); ? ? ??? 这样为什么可以?然后就是loop 是个...
分类:
移动开发 时间:
2015-08-13 16:03:03
阅读次数:
162
一、应用场景 异步下载数据,这是多线程技术的一个比较常见的应用场景 还有一些比较耗时的操作或者功能(客户端与服务端的交互;从数据库中一次性读取大量数据等),需要在主线程之外,单独的开辟一个新的线程(子...
分类:
移动开发 时间:
2015-08-13 14:37:16
阅读次数:
250
线程
线程和进程
进程:系统运行程序的最小单位;一个进程最少有一个线程
线程:程序执行任务的最小单位;线程与线程之间并行
一个进程至少有一个线程,在java中这个线程称为主线程,由系统创建,运行main方法。这样只有一个线程的程序也被称为单线程程序。
主线程从程序入口main方法开始执行代码,执行任意方法中的代码都是按照自上而下的顺序执行的,如果只有一个主线程,又想实现在线听音乐这个功能...
分类:
编程语言 时间:
2015-08-13 14:25:31
阅读次数:
140
进程和线程的概念:进程:程序的运行实例。线程:cpu调度基本单位。Activity启动的时候,启动一个主线程,两个binder线程。主线程实如何产生的?ZygoteInit启动,经由一系列调用后最终zygote为activity创建主线程-->ActivityThread.用于binder的哪些线程...
分类:
移动开发 时间:
2015-08-13 13:42:04
阅读次数:
133
编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
这个问题仍旧是线程间的交替控制问题,分析方法还是可以同上一篇“多线程经典问题1——主线程子线程交替问题”。...
分类:
编程语言 时间:
2015-08-13 10:05:29
阅读次数:
161
核心动画基于QuartzCore框架,只能用于CALayer,可以实现3D效果,它在子线程中执行动画,不会阻塞主线程。
要实现核心动画,主要使用CABasicAnimation实现单步动画、使用CAKeyframeAnimation实现帧动画。
动画的主要属性有duration、keyPath、value、repeatCount等。
动画执行完毕后默认会复位,要取消复位,需要以下两行代码:
...
分类:
其他好文 时间:
2015-08-12 23:38:46
阅读次数:
126
hander与message
1.hander
作用:接受子线程的数据,(Message或Runable对象)更新已绑定的对象.
为什么会出现:
在android或其他的应用中存在一些耗时操作,这些操作如果全部出现在主线程中,当他们进行的时候,你是没办法去做其他的事情的.这时人们就想,可不可以在申请一些"资源",专门用来处理这项耗时的操作,而不影响当...
分类:
移动开发 时间:
2015-08-12 21:45:31
阅读次数:
116