协程 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。实现单线程的并发。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所 ...
分类:
其他好文 时间:
2018-01-03 17:36:33
阅读次数:
182
实现并发,可以使用多进程,多线程。 进程和线程有个共同点,他们都是通过操作系统来调度的。 而协程,则把调度的权力交给了程序员。 协程可以看作用户态下协作的线程。 用户态:是说协程的调度权属于程序员。 协作:是说协程的调度是协作式的,不是抢占的。在协程中,某部分可以通过调用某个方法,将控制权交出,这时 ...
分类:
其他好文 时间:
2018-01-01 18:16:04
阅读次数:
94
一、背景 list.h文件位于linux/include下,内核中链表的操作函数都在其中。它有许多关于链表的操作函数,所以我们可以尝试将list.h拉到用户态中来使用,这样,我们在用户态中若要用到链表就可以直接调用其中已经实现好的函数了。我这里将拉到用户态的经过“改造”后的list.h文件代码列出, ...
分类:
其他好文 时间:
2017-12-25 16:05:02
阅读次数:
163
ZC: 下面记录的页码编号(P.??)都是指 书的 页码,而非 PDF的页码 1、P.32:SRV*D:\Symbols_Web*http://msdl.microsoft.com/download/symbols;C:\Symbols ZC: 各个 应该是使用 分号(";")隔开 ZC: VC6编 ...
在使用top命令的时候会看到这么一行: 翻译一下: us:用户态使用的cpu时间比 sy:系统态使用的cpu时间比 ni:用做nice加权的进程分配的用户态cpu时间比 id:空闲的cpu时间比 wa:cpu等待磁盘写入完成时间 hi:硬中断消耗时间 si:软中断消耗时间 st:虚拟机偷取时间 如果 ...
分类:
移动开发 时间:
2017-12-23 21:47:43
阅读次数:
172
GIL线程全局锁 线程全局锁(Global Interpreter Lock),即Python为了保证线程安全而采取的独立线程运行的限制,说白了就是一个核只能在同一时间运行一个线程.对于io密集型任务,python的多线程起到作用,但对于cpu密集型任务,python的多线程几乎占不到任何优势,还有 ...
分类:
编程语言 时间:
2017-12-21 17:14:58
阅读次数:
201
转自:http://www.aichengxu.com/linux/7166015.htm 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 引言 前一篇关于linux系统如何实现fork的研究(一)通过代码已经说明了从用户态怎么通过软中断实现调用系统调用clo ...
分类:
系统相关 时间:
2017-12-21 15:59:17
阅读次数:
197
kvm,一台物理机,一个操作系统,在这个操作系统中隔离,这是docker; 反思:一个物理机上只能有一个操作系统系统存在么?操作系统无非是一套软件而已,在特殊的偏移地址上; 为啥一台物理机上不能驻扎两个操作系统?!(振聋发聩的一问) 我们想想如果有两个操作系统会发生啥事情。 1)进程执行层面;我们通 ...
分类:
其他好文 时间:
2017-12-16 20:29:01
阅读次数:
114
背景 最近boot中遇到个用户态程序的segment fault异常,除了一句“Segment fault”打印外无其他任何打印。该问题复现概率较低,定位起来比较棘手。我们的boot是个经过裁剪的最小linux系统,由于bootflash大小的限制,加上在boot阶段也没有挂载其他储存设备,所以没有 ...
分类:
其他好文 时间:
2017-12-13 20:12:10
阅读次数:
342