摘要 andriod提供了 Handler 和 Looper 来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。正文图解:代码示例:/** * @author allin.dev * ht...
分类:
移动开发 时间:
2015-04-08 19:30:04
阅读次数:
196
AsyncTask AsyncTask,它使创建需要与用户界面交互的长时间运行的任务变得更简单。相对来说AsyncTask更轻量级一些,适用于简单的异步处理,不需要借助线程和Handler即可实现。? AsyncTask是抽象类.AsyncTask定义...
分类:
移动开发 时间:
2015-04-07 23:36:05
阅读次数:
401
从操作系统的角度讲,线程间通信比进程间通信要容易的多,因为线程之间可以共享进程的内存空间。因此,他们可以共享位于进程全局数据区和栈和堆上的所有内容。
唯一只属于某个线程的就是线程的栈-------它可以存放只属于线程的对象。
下面逐一解读线程间通信方式:
1. 共享进程的变量
这是最基本的通信方式,但要注意不要共享线程栈上的变量,因为它随时可能被某个线程销毁,而另一个线程就无法访问它了...
分类:
编程语言 时间:
2015-03-29 12:21:27
阅读次数:
322
上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。 那么引入本篇的主角,Condition,Condition.....
分类:
编程语言 时间:
2015-03-28 11:29:21
阅读次数:
155
Handler主要是主线程和子线程通信。一般子线程中做一些耗时操作做完之后通知主线程来修改UI。
实际上android系统在Activity启动或者状态变化等都是通过Handler机制实现的。
首先进入到ActivityThread的main方法中
public static void main(String[] args) {
……
Looper.pre...
分类:
移动开发 时间:
2015-03-14 08:28:31
阅读次数:
156
线程通信我认为是多线程中最难掌握的部分了,这里通过两个例子来说明一下。
第一个:
使用两个线程打印 1-100. 线程1, 线程2 交替打印public class Print implements Runnable{
int i = 1;
public void run(){
while(true){
synchronized(this)...
分类:
编程语言 时间:
2015-03-12 01:02:15
阅读次数:
161
1、线程通信的必要性 ????多线程不仅共享资源,而且相互牵制向前运行。 2、线程通信的方法(都是在Object中定义) ????3个方法: ????????????????1)????wait() 可运行转入阻塞状态,...
分类:
编程语言 时间:
2015-03-11 13:09:12
阅读次数:
163
EventBus是个什么东西?有什么用?
EventBus是一个发布 / 订阅的事件总线。简单点说,就是两人约定好怎么通信,一人发布消息,另外一个约定好的人立马接收到你发的消息。
用处:相信大家都用过Handle了进行线程通信,回调方法进行通信,是不是觉得特麻烦。EventBus就可以帮减少很多事,不管你在任何地方任何位置发布一个事件,接收者都能立马接收到你的消息,不用你考虑android子线...
分类:
移动开发 时间:
2015-03-05 19:32:53
阅读次数:
232
线程间的通信1.线程之间的通信简单介绍一般而言,在一个应用程序中(即进程),一个线程往往不是孤立存在的,经常须要和其他线程通信,以运行特定的任务。如主线程和次线程,次线程与次线程,工作线程和用户界面线程等。这样,线程与线程间必然有一个信息传递的渠道。这样的线程间的通信不可是难以避免的,并且在多线程编...
分类:
编程语言 时间:
2015-02-11 10:36:57
阅读次数:
254