菜鸟笔记
提升您的技术认知

菜鸟教程 第67页

ucontext 简单协程库

菜鸟阅读 : 3231赞(0)

1.干货写在前面 协程是一种用户态的轻量级线程。本篇主要研究协程的C/C++的实现。 首先我们可以看看有哪些语言已经具备协程语义: 比较重量级的有C#、erlang、golang* 轻量级有python、lua、javascript、rub...

为PHP7.0安装redis扩展

菜鸟阅读 : 2141赞(0)

1、git 克隆phpredis源码: git clone –b php7 https://github.com/phpredis/phpredis.git 2、编绎源码: cd phpredis  ...

python中yield的用法详解

菜鸟阅读 : 3719赞(0)

首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂的,我就想问没有有考虑过读者的感受。 接...

ucontext 协程库代码分析

菜鸟阅读 : 4008赞(0)

一、什么是协程 协程,英文叫做 Coroutine,又称微线程、纤程,协程是一种用户态的轻量级线程。简单地说,协程就是在用户态对线程的模拟,我们都知道线程的调度是由操作系统内核完成的,而协程的调度是由用户代码完成的。 相比线程,协程有如下优...

TCP 连接半关闭问题

菜鸟阅读 : 3042评论(0)赞(0)

TCP 连接是双工的,既可以上行数据,又可以下行数据。连接断开时,两侧通道也是分别关闭的。 从 API 层面看,如果 read 返回 0 ,则说明上行数据已经关闭,后续不再会有数据进来。但此时,下行通道未必关闭,也就是说对端还可能期待收取数...

进程间通信的方式

菜鸟阅读 : 2177赞(0)

进程间通信的定义 进程是转入内存并准备执行的程序,每个程序都有私有的虚拟地址空间,由代码,数据以及它可用的系统资源(如文件,管道)组成。 由于不同的进程运行在各自的内存空间中,其中一个进程对于变量的修改对于另一方是无法感知的。因此,进程之间...

x86架构下,页面大小为什么是4K?

菜鸟阅读 : 3124赞(0)

前提:32位逻辑空间的计算机OS,两级页表,每个页中每个条目占4bytes,即32位的数据 以上前提是目前X86架构的32为系统的真实情况; 设页大小为X(byte),则X/4为每个页可以存取的条目的个数,两级页表的地址转换关系如下图所示:...