管道 #创建管道的类: Pipe([duplex]):在进程之间创建一条管道,并返回元组(conn1,conn2),其中conn1,conn2表示管道两端的连接对象,强调一点:必须在产生Process对象之前产生管道 #参数介绍: dumplex:默认管道是全双工的,如果将duplex设置成False,conn1只能用于接收,conn2只能用于发送. #主要方法: conn1.recv():接收conn2.send(obj)发送的对象.如果没有消息可接收,recv方法会一直阻塞.如果连接的另外一…
http://www.jb51.net/article/102059.htm 处理器总处于以下状态中的一种: 1.内核态,运行于进程上下文,内核代表进程运行于内核空间 2.内核态,运行于中断上下文,内核代表硬件运行于内核空间 3.用户态,运行于用户空间 一个进程的上下文可以分为三个部分:用户级上下文,寄存器上下文以及系统级上下文. 用户级上下文:正文.数据.用户堆栈以及共享存储区 寄存器上下文:通用寄存器.程序寄存器.处理器状态寄存器.栈指针(ESP) 系统级上下文:  进程控制块task_st…
处理器总处于以下状态中的一种: 1.内核态,运行于进程上下文,内核代表进程运行于内核空间: 2.内核态,运行于中断上下文,内核代表硬件运行于内核空间: 3.用户态,运行于用户空间:   一个进程的上下文可以分为三个部分:用户级上下文.寄存器上下文以及系统级上下文.   用户级上下文: 正文.数据.用户堆栈以及共享存储区: 寄存器上下文: 通用寄存器.程序寄存器(IP).处理器状态寄存器(EFLAGS).栈指针(ESP): 系统级上下文: 进程控制块task_struct.内存管理信息(mm_st…
主要问题其实只有两个,其一:如何判断当前发送事件的线程是否是主线程:其二:如何在接收事件时指定线程并执行: 一个一个来看. 1.如何判断是否在主线程发送 EventBus在初始化的时候会初始化一个MainThreadSupport对象,它会去获取主线程的Looper对象并存起来.(当前最新版本如果不是Android环境MainThreadSupport会为空,非Android环境也就无需关注是否是UI主线程的问题了) 在发送消息的时候,EventBus会取出当前线程的Looper对象对象与主线程…
Observable(被观察者,发射器)发送数据: just:发送单个的数据: Observable.just("cui","chen","bo") .subscribe(new Consumer<String>() { @Override public void accept(String s) throws Exception { Log.i(TAG, "accept: "+s); } }); Log: 04-…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com RxJava 操作符 on和doOn 线程切换 调度 Schedulers 线程池 MD 目录 目录RxJava 线程池正常的流程切换线程对 on** 方法的影响指定被观察者发布事件的线程指定订阅者(观察者)接收事件的线程线程切换切换线程对 doOn** 的影响切换线程的操作放在最上面向下…
进程切换分两步: 1.切换页目录以使用新的地址空间 2.切换内核栈和硬件上下文 对于linux来说,线程和进程的最大区别就在于地址空间,对于线程切换,第1步是不需要做的,第2是进程和线程切换都要做的. 切换的性能消耗: 1.线程上下文切换和进程上下问切换一个最主要的区别是线程的切换虚拟内存空间依然是相同的,但是进程切换是不同的.这两种上下文切换的处理都是通过操作系统内核来完成的.内核的这种切换过程伴随的最显著的性能损耗是将寄存器中的内容切换出. 2.另外一个隐藏的损耗是上下文的切换会扰乱处理器的…
思路: 开三个线程A,B,C 线程A不断的调用LockSupport.park()阻塞自己,一旦发现自己被唤醒,调用Thread.interrupted()清除interrupt标记位,同时增加自增计数 线程B不断的调用线程A的interrupt()方法,将线程A从阻塞中唤醒,一旦唤醒成功,则自增计数 线程C定时输出计数 代码如下 import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks…
一. 序 EventBus 是一个基于观察者模式的事件订阅/发布框架,利用 EventBus 可以在不同模块之间,实现低耦合的消息通信. EventBus 因为其使用简单且稳定,被广泛应用在一些生产项目中. 通常我们就是使用 EventBus 分发一些消息给消息的订阅者,除此之外我们还可以通过 EventBus 将消息传递到不同的线程中去执行,处理消息.这其中还涉及到一些线程切换问题.线程池的问题,在使用的过程中,还有一些配置的选择,此时我们需要根据不同的业务场景,来选择不同的线程切换方式. 本…
(本文由言念小文原创,转载请注明出处) 一  前言有Android开发经验的同学都清楚,UI的更新必须在主线程中进行,且主线程不能被阻塞,否则系统ANR异常.我们往往做一些数据处理是耗时操作,必须要在子线程中进行,然后再将处理后的数据切换到主线程去更新UI,这便是线程切换.线程切换的本质是“数据的切换”,即将数据从一个线程传递到另一个线程. 二  案例描述老风格,先给出场景案例,然后通过线程切换实现该案例.案例:在线程A中调用api发送一段数据data,data最终通过线程切换由线程B执行数据处…