- 博客(5)
- 收藏
- 关注
原创 golang学习笔记-channel
go语言协程学习笔记协程简介多线程传递数据的方式一般是通过共享内存,为了解决线程的竞争,需要限制同一时间访问这些线程的数量(互斥锁)。golang采用channel进行协程间的数据传递,channel强调的是两个协程之间传递数据,所以最好是一个协程写,另外有一个协程读。代码1演示如下package mainimport ( "fmt" "time")func main() { ch := make(chan string) //发送操作在协程中执行,如不在协程中操作,则主函数报
2021-11-18 18:29:45 474
原创 select、poll和epoll的理解
select、poll和epoll都是IO多路复用的实现方式。IO多路复用是通过一种机制,可以见监控个描述符,一旦某个描述符读就绪或者写就绪,就能通知程序进行相应的读写操作。select,poll,epoll本质上都是同步I/O。同步:指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪,自己负责进行读写。异步:是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知selectselect 函数监视的文件描述符分3类,分别是writefds、rea
2020-07-12 18:11:14 248 2
原创 五大IO模型的理解及PHP简单实现
文章目录五大 I/O 模型阻塞 I/O原理介绍代码实现执行结果及说明执行结果说明非阻塞 I/O原理介绍代码实现执行结果及说明执行结果说明I/O 多路复用原理介绍执行结果及说明执行结果说明信号驱动 I/O代码实现执行结果及说明执行结果说明异步 I/O代码实现执行结果及说明执行结果说明总结五大 I/O 模型对于一次 IO 操作,数据会先被拷贝进操作系统内核空间的缓冲区中,然后才会从内核缓冲区中拷贝到用户空间。所以说,当一个 IO 操作发生时,它会经历两个阶段:等待数据准备。将数据从内核拷贝到用户空间
2020-07-11 23:49:35 966
原创 Docker介绍和简单应用
什么是DockerDocker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。直白的说就是一个实现虚拟化的容器引擎。三个基本概念1,镜像 (Image)2,容器 (Container)3,仓库 (Repository)镜像操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而
2020-07-02 23:03:08 428
原创 IOC容器的理解和原生代码实现简单容器
##IOC容器的理解和原生代码实现简单容器IOC是什么IOC :Inversion of Control,中文含义就是控制反转,IOC不是一种技术,而是一种思想,通过这种思想,我们可以设计出低耦合,灵活性高,扩展性高的程序。1.控制正转既然提到控制反转,那么就有控制正转。所谓的控制正转,就是我们传统的程序设计的方式:在对象内部通过new的方式创建对象,即我们主动去创建程序的依赖对象。下面我们通过简单的示例代码表现。<?phpinterface Pay{ function doPay
2020-06-30 20:41:16 294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人