Handler消息机制实现线程间通讯的原理???

Handler消息机制实现线程间通讯的原理???

​老师,这是我面试遇到的问题,我自己回去好好看了下,不知道说的对不对??帮我理一下

理解一: 因为Message用的是对象共存的池子,不管在什么线程,总是操作Message这个对象,所以实现了线程间通讯

理解二: 不管是子线程还是主线程使用Hnadler发送Message,最终都是MessageQueue进行处理,通过MessageQueue可以找到Message,相当于一个集合,不同线程把对象发到这个集合里面,最终通过Looper取出来,然后分发到对应线程的Handler

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

使用handler发送消息,而handler创建的时候自动会和所在线程的looper绑定,而loooper又自动和线程的messagequeue绑定。【此处的线程是指new  handler()代码所在的线程】

在任意线程,只要拿到了其他线程的handler,就可以往那个线程的消息队列发送消息,从而线程间实现通信

我有明珠一颗 2024-11-26 10:32:37

线程间可以通过共享内存或者消息传递通信

1 共享内存:线程通过访问共享的内存区域通信。多线程同时访问一块内存区域,通过读写这个区域的数据来通信。使用共享内存时,注意同步问题,防止竞态条件和数据不一致

2 消息传递:线程间通过发送、接收消息通信。每一个线程都有自己的消息队列MessageQueue,可以向队列发消息,从队列接收消息。线程可以异步地发送、接收消息。通过消息传递 可以实现线程之间解耦和灵活性

需要注意,在多线程通信时,需要考虑线程安全和同步问题,避免数据竞争和死锁等并发问题的发生。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码