里面的 Handler 究竟是如何保证线程安全的

作者&投稿:唱宋 (若有异议请与网页底部的电邮联系)
handler机制是线程安全的吗~

Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。

一、Handler的定义:
主要接受子线程发送的数据, 并用此数据配合主线程更新UI。
解释:当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件, 进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据, 或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面会出现假死现象, 如果5秒钟还没有完成的话,会收到Android系统的一个错误提示 "强制关闭"。 这个时候我们需要把这些耗时的操作,放在一个子线程中,因为子线程涉及到UI更新,,Android主线程是线程不安全的, 也就是说,更新UI只能在主线程中更新,子线程中操作是危险的。 这个时候,Handler就出现了。,来解决这个复杂的问题 ,由于Handler运行在主线程中(UI线程中), 它与子线程可以通过Message对象来传递数据, 这个时候,Handler就承担着接受子线程传过来的(子线程用sedMessage()方法传弟)Message对象,(里面包含数据) , 把这些消息放入主线程队列中,配合主线程进行更新UI。
二、Handler一些特点
handler可以分发Message对象和Runnable对象到主线程中, 每个Handler实例,都会绑定到创建他的线程中(一般是位于主线程),它有两个作用:
(1)安排消息或Runnable 在某个主线程中某个地方执行;
(2)安排一个动作在不同的线程中执行。
三、Handler实例
子类需要继承Hendler类,并重写handleMessage(Message msg) 方法, 用于接受线程数据。

Handler的使用主要是android中无法在主线程(即UI线程)中访问网络、无法在子线程中访问UI线程元素。
一般是在子线程中访问网络,然后使用Handler发送message通知主线程处理UI更新操作

Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。

一、Handler的定义:
主要接受子线程发送的数据, 并用此数据配合主线程更新UI。
解释:当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件, 进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据, 或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面会出现假死现象, 如果5秒钟还没有完成的话,会收到Android系统的一个错误提示 "强制关闭"。 这个时候我们需要把这些耗时的操作,放在一个子线程中,因为子线程涉及到UI更新,,Android主线程是线程不安全的, 也就是说,更新UI只能在主线程中更新,子线程中操作是危险的。 这个时候,Handler就出现了。,来解决这个复杂的问题 ,由于Handler运行在主线程中(UI线程中), 它与子线程可以通过Message对象来传递数据, 这个时候,Handler就承担着接受子线程传过来的(子线程用sedMessage()方法传弟)Message对象,(里面包含数据) , 把这些消息放入主线程队列中,配合主线程进行更新UI。
二、Handler一些特点
handler可以分发Message对象和Runnable对象到主线程中, 每个Handler实例,都会绑定到创建他的线程中(一般是位于主线程),它有两个作用:
(1)安排消息或Runnable 在某个主线程中某个地方执行;
(2)安排一个动作在不同的线程中执行。
三、Handler实例
子类需要继承Hendler类,并重写handleMessage(Message msg) 方法, 用于接受线程数据。


雨城区17850521510: 里面的 Handler 究竟是如何保证线程安全的 -
仇璐潘舒: Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理. 这种机制通常用...

雨城区17850521510: Python中的logger和handler到底是个什么鬼 -
仇璐潘舒: 最近的任务经常涉及到日志的记录,特意去又学了一遍logging的记录方法.跟java一样,python的日志记录也是比较繁琐的一件事,在写一条记录之前,要写好多东西.典型的日志记录的步骤是这样的:创建logger 创建handler 定义formatter 给...

雨城区17850521510: stm32中断的handler是什么意思 -
仇璐潘舒: handler的英文是处理的意思. 当中断事件发生时,MCU的PC指针会跳转到对应的中断入口,如复位发生,系统自动跳转到0地址处,汇编文件中在该地址放一条跳转指令跳转到对应的函数执行中断处理.各编译器的约定是采用xxxx_handler的形式,所以都有handler.这只是个约定而已,可以自己修改.s的跳转函数.

雨城区17850521510: 面试:Handler 的工作原理是怎样的 -
仇璐潘舒: Handler机制工作原理:Handler 工作流程基本包括 Handler、Looper、Message、MessageQueue 四个部分.但我们在日常开发中,经常都只会用到 Handler 和 Message 两个类.Message 负责消息的搭载,里面有个 target 用于标记消息,obj ...

雨城区17850521510: office document cache handler 是什么.IE加载项里面的 -
仇璐潘舒: office document cache handler是微软office的共享缓存,用于不同平台的办公共享,如果你不使用sharepiont和是office online,可以禁用,对我们浏览网页没有任何影响,当然你去掉了这个下次需要服务的时候会自动加载,请放心

雨城区17850521510: Android中的Handler详解以及和Thread的区别 -
仇璐潘舒: 通俗的解释就是: Thread处理Handler发送过来的消息,每个Thread都要有一个消息处理队列(MessageQueue),用于存放handler发送过来的消息.Thread为一个while(true)无限循环...

雨城区17850521510: linux源代码中有很多变量以handler结尾,代表什么意思?和window里面的句柄有什么区别? -
仇璐潘舒: 这里发估计没几个人都回答你,因为涉及到linux源代码.这个handler和句柄完全不是一回事,句柄的英文是handle:) handler是处理程序的意思,比如中断有相应中断的内核中断处理程序 - interrupt handler;信号有信号处理程序 signal handler 我只能尽我最大力量回答你,我没看过内核代码,不过对内核还懂些.希望即使没帮到你 也启发了你

雨城区17850521510: Android里面的bundle的,Fragment,Handler,canvas是什么东西???分别是干嘛用的 -
仇璐潘舒: bundle 用于activity之间的数据传递.可以放一些键值对信息 Fragment 代表一个独立的页面.可以放在activity中显示. Handler 一种异步回调机制.用于android多线程之间事件通知.canvas 画布,view,bitmap都有对应的画布,在上面绘制东西,就可以显示出来.

雨城区17850521510: Android Handler机制 怎么用? -
仇璐潘舒: Handler对象与其调用者在同一线程中,如果在Handler中设置了延时操作,则调用线程也会堵塞.每个Handler对象都会绑定一个Looper对象,每个Looper对象对应一个消息队列(MessageQueue).如果在创建Handler时不指定与其绑定的...

雨城区17850521510: android中handler和bundle有什么区别和联系 都是用来传递消息吗都是信息的载体吗 -
仇璐潘舒: 1、handler是消息处理者,通常重写Handler的handleMessage()方法,在方法中处理接收到的不同消息,例如:Handler mHandler=new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what) { case 110:...

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网