线程之间通信、进程之间通信
来源:互联网 发布:传奇霸业13转身值数据 编辑:程序博客网 时间:2024/05/02 21:08
一、线程与线程之间进行通信 ①、线程的分类 UI线程(主线程)、工作线程 ②、通信可能便会想到Handler。通常情况下我们在主线程(UI线程)与工作线程之间进行通讯 实现数据之间的传递。为什么可以在主线程中进行和工作线程之间进行通讯呢?原因在主线程会 自动开启一个Looper线程,正是这个Looper线程使得可以和工作线程进行通讯。 ③、如何实现工作线程与工作线程之间的通信呢。根据主线程和工作线程的实现原理不难发现,我们 我们需要一个Looper线程。所以我们需要在工作线程中去创建一个Looper线程。 eg: //获取信息的线程 class GetMsgThread extends Thread{ Handler mHandler; public Handler getHandlerInstance(){ //在Run()方法执行之后才会赋值 return mHandler; } @Override public void run() { super.run(); //创建一个Looper线程 Looper.prepare(); mHandler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); Log.i("TAG","确认收到消息--------------->" +"线程名:"+Thread.currentThread().getName() +"消息:"+msg.obj ); } }; Looper.loop(); } } //发送信息的线程 class SendMsgThread extends Thread{ @Override public void run() { super.run(); for (int i=0;i>5;i++){ Message msg = Message.obtain(); msg.what=1; msg.obj= "当前时间“"+System.currentTimeMillis(); new GetMsgThread().getHandlerInstance().sendMessage(msg); Log.i("TAG","确认发送消息--------------->" +"线程名:"+Thread.currentThread().getName() +"消息:"+msg.obj ); } } }二、进程与进程之间进行通信 ①、进程之间的通信---->四大组件之间ContentProvider内容提供者 a)、contentProvider内容提供者 底层是通过Binder实现,主要用来为其他APP提供数据。 b)、自定义一个内容提供者需要实现6个方法,其中只有onCreate实在主线程中回调的,而 其他5个方法是在Binder中执行的。 c)、自定义的ContentProvider注册时要提供authorities属性, 应用需要访问的时候将属性包装成Uri.parse("content://authorities") d)、ContentProvider有query,delete,insert等方法 ②、Socket通信---->java a)、在服务器中定义ServerSocket来监听端口,客户端使用Socket来请求端口, 连通后就可以进行通信。 ③、AIDL---->强大的通信机制 a)、AIDL定义服务端暴露的接口,以提供给客户端来调用,AIDL使服务器可以并行处理, 而Messenger封装了AIDL之后只能串行运行,所以Messenger一般用作消息传递。 ④、Messenger---->信使 a)、Messenger是基于AIDL实现的,服务端(被动方)提供一个Service来处理客户端 (主动方)连接,维护一个Handler来创建Messenger,在onBind时返回Messenger的binder。 b)、双方用Messenger来发送数据,用Handler来处理数据。Messenger处理数据依靠Handler, 所以是串行的,也就是说,Handler接到多个message时,就要排队依次处理。 ⑤、Bundle、Intent---->传递数据 a)、序列化数据进行信息传递
1 0
- 线程之间、进程之间通信
- 线程之间通信、进程之间通信
- 进程、线程之间通信方式
- 进程之间、线程之间的通信方式
- 进程之间与线程之间的通信
- 进程之间通信和线程间通信
- 进程,线程,及之间的通信
- 线程之间进程之间的通信方式及其代码实现
- 进程之间、线程之间的通信方式总结
- 两个进程之间通信
- 进程之间的通信
- 进程之间 通信方式
- 进程之间如何通信
- 进程之间的通信
- Handler进程之间通信
- 进程之间的通信
- 进程之间的通信
- 进程之间的通信
- css复习及flex布局
- 微软caffe-SSD的训练和预测(windows cpu)
- div的控制
- spring 跨域问题CORS
- <28>python学习笔记——多线程 / 多进程
- 线程之间通信、进程之间通信
- 使用React.js生成基本组件
- 不起眼的涿州楼市成热力中心 房价直冲2万元大关
- 科锐课堂笔记:2017/3/8 内存结构与变量作用域
- python模拟登陆csdn及其注意事项,附带源码
- Html介绍
- swift的枚举
- c++知识点总结(1)
- java 字节流与字符流的区别