进程切换分两步: 1.切换页目录以使用新的地址空间 2.切换内核栈和硬件上下文 对于linux来说,线程和进程的最大区别就在于地址空间,对于线程切换,第1步是不需要做的,第2是进程和线程切换都要做的. 切换的性能消耗: 1.线程上下文切换和进程上下问切换一个最主要的区别是线程的切换虚拟内存空间依然是相同的,但是进程切换是不同的.这两种上下文切换的处理都是通过操作系统内核来完成的.内核的这种切换过程伴随的最显著的性能损耗是将寄存器中的内容切换出. 2.另外一个隐藏的损耗是上下文的切换会扰乱处理器的…
一 . 偏函数 from functools import partial def func(a, b): return a + b new_func = partial(func, 3, 4) # 3,4就是a,b, 也可传*args **kwargs ret = new_func() # 也可以这样写,结果是一样的 # new_func = partial(func, 3) # 这个3是a # ret = new_func(4) # 这个4是b 二 . 线程安全 # 当使用公共变量的时候,开…
主要问题其实只有两个,其一:如何判断当前发送事件的线程是否是主线程:其二:如何在接收事件时指定线程并执行: 一个一个来看. 1.如何判断是否在主线程发送 EventBus在初始化的时候会初始化一个MainThreadSupport对象,它会去获取主线程的Looper对象并存起来.(当前最新版本如果不是Android环境MainThreadSupport会为空,非Android环境也就无需关注是否是UI主线程的问题了) 在发送消息的时候,EventBus会取出当前线程的Looper对象对象与主线程…
管道 #创建管道的类: Pipe([duplex]):在进程之间创建一条管道,并返回元组(conn1,conn2),其中conn1,conn2表示管道两端的连接对象,强调一点:必须在产生Process对象之前产生管道 #参数介绍: dumplex:默认管道是全双工的,如果将duplex设置成False,conn1只能用于接收,conn2只能用于发送. #主要方法: conn1.recv():接收conn2.send(obj)发送的对象.如果没有消息可接收,recv方法会一直阻塞.如果连接的另外一…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com RxJava 操作符 on和doOn 线程切换 调度 Schedulers 线程池 MD 目录 目录RxJava 线程池正常的流程切换线程对 on** 方法的影响指定被观察者发布事件的线程指定订阅者(观察者)接收事件的线程线程切换切换线程对 doOn** 的影响切换线程的操作放在最上面向下…
(本文由言念小文原创,转载请注明出处) 一  前言有Android开发经验的同学都清楚,UI的更新必须在主线程中进行,且主线程不能被阻塞,否则系统ANR异常.我们往往做一些数据处理是耗时操作,必须要在子线程中进行,然后再将处理后的数据切换到主线程去更新UI,这便是线程切换.线程切换的本质是“数据的切换”,即将数据从一个线程传递到另一个线程. 二  案例描述老风格,先给出场景案例,然后通过线程切换实现该案例.案例:在线程A中调用api发送一段数据data,data最终通过线程切换由线程B执行数据处…
原文:将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 如果你要在 WPF 程序中使用线程池完成一个特殊的任务,那么使用 .NET 的 API Task.Run 并传入一个 Lambda 表达式可以完成.不过,使用 Lambda 表达式会带来变量捕获的一些问题,比如说你需要区分一个变量作用于是在 Lambda 表达式中,还是当前上下文全局(被 Lambda 表达式捕获到的变量).然后,在静态分析的时候,也难以知道此 Lambda 表达式在整个方法中的执行先后顺序,不利于分…
mha方案来自:http://www.cnblogs.com/xuanzhi201111/p/4231412.html MHA的在线切换 192.168.2.131 [root bin]$ masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.2.129 --new_master_port=3306 --orig_master_is_new_slave…
http://www.jb51.net/article/102059.htm 处理器总处于以下状态中的一种: 1.内核态,运行于进程上下文,内核代表进程运行于内核空间 2.内核态,运行于中断上下文,内核代表硬件运行于内核空间 3.用户态,运行于用户空间 一个进程的上下文可以分为三个部分:用户级上下文,寄存器上下文以及系统级上下文. 用户级上下文:正文.数据.用户堆栈以及共享存储区 寄存器上下文:通用寄存器.程序寄存器.处理器状态寄存器.栈指针(ESP) 系统级上下文:  进程控制块task_st…
处理器总处于以下状态中的一种: 1.内核态,运行于进程上下文,内核代表进程运行于内核空间: 2.内核态,运行于中断上下文,内核代表硬件运行于内核空间: 3.用户态,运行于用户空间:   一个进程的上下文可以分为三个部分:用户级上下文.寄存器上下文以及系统级上下文.   用户级上下文: 正文.数据.用户堆栈以及共享存储区: 寄存器上下文: 通用寄存器.程序寄存器(IP).处理器状态寄存器(EFLAGS).栈指针(ESP): 系统级上下文: 进程控制块task_struct.内存管理信息(mm_st…