Handler、HandlerThread、Thread的区别

Android:Handler的post()方法和Thread的start()方法执行Thread的run()方法的区别 package com.example.study_5_handlerthread; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* * 创建一个Handler对象,使用Handler对象h把Runnable的对象r压入队列 * 此时只会会执行Run()方法,但是不会开启新的线程 */ //Handler h = new Handler(); //h.post(r); /* * 在java中真正开启线程的方法是这样的。 */ Thread t = new Thread(r); t.start(); setContentView(R.layout.activity_main); System.out.println("Activity-->"+ Thread.currentThread().getId()); System.out.println("Activity-->"+ Thread.currentThread().getName()); } Runnable r = new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Handler-->"+Thread.currentThread().getId()); System.out.println("Handler-->"+Thread.currentThread().getName()); } }; @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 立即下载
Handler:是轻量级的线程,处理handler的looper可以是任意线程,它的消息处理方式是阻塞式的。
必须一条一条的处理。耗时操作 不应该用handler处理。


HandlerThread:继承自Thread,它有个Looper,在这里可以执行耗时操作,


Thread,Runnable
Runnable没有start方法,必须new thread把runnable传进去,然后调用thread的start方法
在JAVA语言中类和类之间是单继承的,而接口和接口之间是多继承的.
也就是说,如果你继承了Thread类之后就再也不能继承其他的类了,这在实际开发中是相当不方便的.
而实现Runnable接口就不会有这个麻烦了,因为接口是多继承的,
你实现一个接口之后只要你需要就可以继续实现其他的接口而没有任何限制.
从这一点上来说,实现Runnable比继承Thread要好许多
Thread、Handler和HandlerThread关系详解 前言 前几天看到一道面试题:Thread、Handler和HandlerThread有什么区别?,这个题目有点意思,对于很多人来说,可能对Thread和Handler很熟悉,主要涉及到Android的消息机制(Handler、Message、Looper、MessageQueue),详见《 从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)》 但是这个HandlerThread是拿来做什么的呢?它是Handler还是Thread?我们知道Handler是用来异步更新UI的,更详细的说是用来做线程间的通信的,更新UI时是子线程与 立即下载

相关推荐

ThinkPHP+Layui开发的ERP管理系统

ERP采购生产销售系统,一款基于ThinkPHP+Layui开发的ERP管理系统,帮助中小企业实现ERP管理规范化,此系统能为你解决五大方面的经营问题:1.采购管理 2.销售管理 3.仓库管理 4.资金管理 5.生产管理,适用于:服装鞋帽、化妆品、机械机电、家具装潢、建材行业、快销品、母婴用品、办公用品、汽配汽修、生鲜农贸、手机通讯、数码家电、医药用品、制造业、信息技术服务行业等。提供全部无加密服务端和前端源代码,独立部署,不受限制。

u011092458的博客 788

Handler、Thread、HandlerThread三者的区别

①Handler:在android中负责发送和处理消息message,通过它可以实现其他支线线程与主线程之间的消息通讯。发消息让界面刷新UI ②Thread:Java进程中执行运算的最小单位,亦即执行处理机调度的基本单位。某一进程中一路单独运行的程序。有时候需要一个线程,不然会让主线程很卡的 ③HandlerThread:一个继承自Thread的类HandlerThread,Android中没有对Java中的Thread进行任何封装,而是提供了一个继承自Thread的类HandlerThread类,这个类对

weixin_44911775的博客 2602

Vue3多级路由缓存失效的深度解析与实战解决方案

本文深度解析了Vue3项目中多级路由下keep-alive缓存失效的根本原因,并提供了三种实战解决方案:通过路由扁平化根治问题、利用状态管理精细模拟缓存效果,以及借助keep-alive-vue3插件快速修复。文章旨在帮助开发者彻底理解Vue Router与keep-alive的协作机制,从而根据项目情况选择最佳策略,有效解决页面状态丢失的难题。

weixin_29015801的博客 285

Thread和Handler区别

在Android里面对于异步消息的处理,提供了一套Handler的实现方案。Handler有很多适宜的应用和微妙之处,使它在和Thread以及Service等一起使用的时候达到很好的效果。 一、Handler与Thread的区别。 Handler与调用者处于同一线程,假如Handler里面做耗时的动作,调用者线程会阻塞。AndroidUI操作不是线程安全的,并...

lizhong 1934

【OpenClaw从入门到精通】第12篇:OpenClaw 2026子代理实战全攻略:用ACP架构搭建多智能体协作网络(附完整代码)

本文聚焦OpenClaw 2026.3.2版本默认启用的ACP(Agent Communication Protocol)子代理机制,从核心概念、底层原理到企业级实操全流程拆解。先解析子代理的定义、ACP协议通信原理及主从代理分工逻辑,再提供环境准备的详细步骤(版本验证、配置调整、技能安装);随后通过三个递进式虚拟案例(客服分流、智能文档处理、企业级招聘全流程),提供可直接运行的完整代码、执行结果及技术要点解析;最后补充子代理管理运维、性能优化与避坑指南。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2381

Python 爬虫实战:爬取 B 站 UP 主投稿数据,分析更新频率与粉丝互动

摘要:本文基于Python技术实现B站UP主投稿数据的自动化爬取与分析。通过解析B站WBI签名机制和API接口,获取UP主视频的标题、播放量、点赞数等核心数据。采用时间序列分析统计更新频率,结合相关性分析挖掘内容特征与粉丝互动的关联。结果显示编程类视频播放量最高,10-20分钟时长的视频表现最佳,投币数与播放量相关性达0.92。文章详细介绍了接口分析、反爬应对等关键技术,为内容创作者优化策略提供数据支持,同时强调遵守平台规范的爬取原则。

2503_91057718的博客 1537

Android开发之十五:Handler、Thread、HandlerThread三者的区别- Handler 四个使用实例 及HandlerThread的使用

一、前期知识储备 (1)Handler类,上官方文档,Handler public class Handler.A Handler allows you to send and process Messageand Runnable objects associated with a thread's MessageQueue. Each Handler instanceis associ...

随意的风的专栏 2530

华为OD机考双机位C卷 - 天然蓄水库(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 天然蓄水库(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1740

Handler、Thread 和 HandlerThread详解

Handler、Thread 和 HandlerThread详解 区别: 1)Handler:在Android中负责发送和处理消息,通过它可以实现其他支线线程与主线程之间的消通讯 2)Thread:线程,可以看作是进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的独立运行的基本单位 3)HandlerThread:封装了Handler + ThreadHandlerThread适合在有需要一个工作线程(非UI线程)+任务的等待队列的形式,优点是不会有堵塞, 减少了对性能的消耗,缺...

zjxwon的博客 1542

手把手教你学Simulink--单相逆变器模糊逻辑控制策略仿真

本文介绍了在Simulink中设计单相逆变器模糊逻辑控制策略的完整流程。主要包括:1)构建单相逆变器模型;2)使用FuzzyLogicToolbox设计模糊控制器,定义输入输出变量和模糊规则;3)将控制器集成到Simulink模型;4)添加干扰源和示波器;5)配置仿真参数并分析结果。该方法利用模糊控制处理非线性系统的优势,可实现输出电压的精确跟踪,具有良好的鲁棒性。文中提供了详细的步骤说明和示例代码,强调准确设计隶属函数和规则库对控制性能的关键作用。该仿真设计为电力电子控制系统的开发提供了有效支持。

MHD0815的博客 200

微信公众平台 - 微信内置浏览器 WeixinJSBridge.invoke(‘xxx‘) API 报错:system:access_denied(常见于微信支付、分享朋友圈/转发好友等功能)解决方案

微信支付提示System:access_denied,调用微信支付返回:system:access_denied为什么,安卓版微信支付偶尔出现system:access_denied,微信公众号开发分享出现system:access_denied,system:access_denied如何解决?微信WeixinJSBridge.invoke(‘xxx‘)API调用后出现报错,微信内部H5WeixinJSBridge.invokesystem:access_denied,使用微信jssdk时报ac

🏆 前端领域优质创作者 5145

Thread、Handler、HandlerThread的区别

Thread、Handler、HandlerThread的区别 参考:http://waylenw.github.io/Android/android-handler-thread-usage/   Thread: 普通的异步线程。 Handler: 异步更新UI的,更详细的说是用来做线程间的通信的,更新UI时是子线程与UI主线程之间的通信。 Thread和Handler都比较熟

子敬的技术博客 2735

YOLOv7独家原创改进:多种新颖的改进方式 | 保持原始信息-深度可分离卷积(MDSConv) | 全局感受野的空间金字塔 (Improve-SPPF)算法 | CA注意力改进版

多种新颖的改进方式 | 保持原始信息-深度可分离卷积(MDSConv) | 全局感受野的空间金字塔 (Improve-SPPF)算法 | CA注意力改进版

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1666

Android姿势点梳理-Handler、Thread、HandlerThread三者的区别

一、前期知识储备 (1)Handler类,上官方文档,Handler public class Handler.A Handler allows you to send and process Messageand Runnable objects associated with a thread's MessageQueue. Each Handler instanceis associ...

madoka_的博客 684

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Thread,Handler,HandlerThread区别

Thread,Handler,HandlerThreadThread在Java中常用的线程类,在Android中我们一般会创建子线程以完成耗时任务,以避免主线程阻塞(ANR)。使用只需要继承Thread类,然后重写run方法即可。HandlerHandler体系中的核心类,用于实现处理Message的逻辑HandlerThread本质上是一个包含了Looper的的Thread作用当位于非UI线程我们

a641324093的专栏 632

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

HandlerThread和Handler和Thread的区别

HandlerThread集成Thread,区别就是里面已经创建好了Looper,不必手动创建,运行在子线程中,可以在里面进行耗时操作! 转载地址:https://blog.youkuaiyun.com/weixin_41101173/article/details/79687313

c657674129的博客 444

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

android中handlerthread与handler + thread区别

工作之间随手写的,handler + thread是初学者喜欢用的,为了不影响ui线程,开辟一个新的thread进行耗时操作,操作结束后需要更新ui,就需要通过handler进行 sendmessage来与ui线程通信,提醒一下在创建handler的时候,大部分初学者没有注意到参数Looper,它是负责不断循环处理线程中的message.很多人会问我没有注意创建 looper啊,这是系统默认在

2359Coding 1551

android handler.post 与 thread的区别,关于Handler的这些都没搞懂,还怎么去跳槽

前言做 Android 开发肯定离不开跟 Handler 打交道,它通常被我们用来做主线程与子线程之间的通信工具,而 Handler 作为 Android 中消息机制的重要一员也确实给我们的开发带来了极大的便利。可以说只要有异步线程与主线程通信的地方就一定会有 Handler。那么;Handler 的通信机制的背后的原理是什么?Handler、Thread 和 HandlerThread 的差别?...

weixin_36438989的博客 848

java handler线程_Java的HandlerThread,Handler,Thread使用方法(转)

Handler会关联一个单独的线程和消息队列。Handler默认关联主线程,虽然要提供Runnable参数,但默认是直接调用Runnable中的run()方法。也就是默认下会在主线程执行,如果在这里面的操作会有阻塞,界面也会卡住。如果要在其他线程执行,可以使用HandlerThread。HandlerThread的使用//Handler handler = new Handler() {//......

weixin_36433781的博客 704

HandlerThread的解析

一、HandlerThread的使用 //创建实例对象 HandlerThread handlerThread=new HandlerThread("thread_handler"); //开启循环 handlerThread.start(); //创建handler,looper使用的是handlerThread的looper Handler handler=new Handler(hand...

黑夜的触手 441

Android HandlerThread 和 Handler区别

HandlerThread 和 Handler 都是 Android 中用于处理线程间通信和异步任务的工具,但它们的使用场景和功能有所不同。下面是它们的主要区别和各自的使用方法。

wolf0706的专栏 698

WifiStatemachine 是运行在独立的线程中的:浅析Thread、Handler和HandlerThread的关系

zgs:今天在看WifiStatemachine  的时候,发现WifiStatemachine 是运行在独立的线程中的,原因是Statemachine  有mSmThread = new HandlerThread(name);  有创建独立的线程的。 然后,顺便阅读了下面的博文: ============================================ 前几天看到一道面试题...

weixin_38503885的博客 356
上一篇: Service 详解
下一篇: 编译反编译工具要点汇总
手艺人王学明
手艺人王学明 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄17年 441粉丝 185原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值