Goroutine的创建

2021-10-09
阅读 8 分钟
1.4k
原文传送门Go代码中,利用关键字go启动协程。编译器发现go func(...),将调用newproc {代码...} func newproc(fn *funcval)创建一个g来运行fn将g放入g等待队列中,等待被调度编译器会把go语句转化为调用newproc {代码...} fn *funcval其中 newproc 函数有1个参数fn 是一个可变参数类型 {代码...} 如果我们有go程序 {代码....

Golang中interface的简单分析

2021-10-03
阅读 6 分钟
1.9k
Go语言中的接口,是一组方法的签名,它是Go语言的重要组成部分。使用接口能让我们写出易于测试的代码。然而很多工程师对Go接口的了解都非常有限,也不清楚其底层原理的实现。这成为了开发高性能服务的阻碍。

Redis pipeline 在连续一万次插入操作测试中的使用

2018-11-05
阅读 1 分钟
2.8k
Redis pipeline 在连续一万次插入操作测试中的使用中如下代码运行后的结果是 {代码...} 可以看出pipeline确实可以节省很多时间 {代码...}

五种IO模型

2018-07-28
阅读 1 分钟
2k
五种IO模型 blocking IO non-blocking IO IO multiplexing signal driven IO asynchronous IO IO过程中,会涉及到用户进程和系统内核两个概念,分两步完成IO。首先,等待数据准备。然后,将数据从系统内核copy到用户进程。 阻塞IO process 要求 kernal 返回数据 process 等待 kernal 开始准备数据 kernal 准备好数据 将...

如何用php实现一个web服务器

2016-09-09
阅读 2 分钟
6.9k
如何用php实现一个web服务器 ①实现一个回显服务器 客户端发来一个请求,我们把请求包发回去显示。 创建监听套接字 新建start_web.php {代码...} 接收请求,并回显 {代码...} 启动服务 {代码...} 浏览器访问 {代码...} 显示结果 {代码...} 上面的例子在接收客户端连接后,会回显消息。 但是服务端会中断服务。 我们改进一...

php如何实现基于事件驱动的网络编程

2016-09-06
阅读 2 分钟
4.6k
php 如何实现基于事件驱动的网络编程 场景 当客户端发送数据到服务端,服务端返回相同信息。 保持连接 说明 接下来的所有代码仅用于简单的小demo生产环境需要考虑代码的严谨性。 例子一 简单的接受数据并返回 {代码...} {代码...} 上面的例子中,服务端在接收到客户端数据后会返回相同信息,然后连接会被关闭。无法保持...

silm框架初使用

2016-07-08
阅读 1 分钟
3.2k
创建文件夹,例如: mkdir -p ~/www/slim;cd ~/www/slim; 在当前文件夹执行: composer require slim/slim; 新建文件并编写代码: vim index.php