代码改变世界

Go语言_接口篇

2012-06-09 23:13 by 轩脉刃, 16683 阅读, 4 推荐, 收藏,
摘要:在Go中,接口interface其实和其他语言的接口意思也没什么区别。interface理解其为一种类型的规范或者约定。一种类型是不是“实现”了一个接口呢?就看这种类型是不是实现了接口中定义的所有方法... 阅读全文

nginx源码学习Unix - Unix域协议

2012-06-08 10:53 by 轩脉刃, 2922 阅读, 1 推荐, 收藏,
摘要:说到什么是域协议就会出现这么个解释: UNIX域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法,所用API与在不同主机上执行客户/服务器通信所使用的API相同。UNIX域协议可以视为IPC方法之一。 我们白话解释下Unix域协议在什么情况下使用和怎么使用? Unix域协议主要用在同一台机子的不同进程之间传递套接字。为什么不用TCP或者U... 阅读全文

Linux IO模型漫谈(5)- IO复用模型之select

2012-06-07 09:05 by 轩脉刃, 5812 阅读, 2 推荐, 收藏,
摘要:首先需要了解的是select函数: select函数 #include<sys/select.h> #include<sys/time.h> int select (int maxfd , f... 阅读全文

Go语言_并发篇

2012-06-06 09:55 by 轩脉刃, 31731 阅读, 8 推荐, 收藏,
摘要:当被问到为什么用Go语言,一定不得不提的是Go语言的并发程序编写。在C语言中编写非常繁琐复杂的并发程序在Go语言中总是显得如此便捷。 Go中并发程序依靠的是两个:goroutine和channel ... 阅读全文

Linux IO模型漫谈(4)- 非阻塞IO

2012-06-05 09:03 by 轩脉刃, 4482 阅读, 2 推荐, 收藏,
摘要:首先先说一下,阻塞IO会在哪些地方阻塞住呢?输入操作read, 输出操作write,接受请求操作accept,发送请求操作connect,这四个地方阻塞进程。 非阻塞IO的模型图示在前面的章节有讲过,它和阻塞IO的最大区别就是:如果连接或者操作不能立即建立,那么连接的建立照样能发起,只是会返回一个错误信息。 同样,先说明几个用到的函数和操作: 1 fcntl函数 其全名为”file control“。顾名思义,fcntl可以执行各种操作符控制操作。#include <fcntl.h>int fcntl(int fd, int cmd, .. /* int arg */)第一个参数f 阅读全文

Linux IO模型漫谈(3) -- 阻塞式IO实现

2012-06-04 09:48 by 轩脉刃, 2258 阅读, 2 推荐, 收藏,
摘要:在理解代码前有几个函数先说一下: 1 sockaddr_in 套接字地址结构 struct sockaddr_in { uint8_t sin_len; //长度字段,这个sockaddr_in结构的长度,一般不用设置和检查它 sa_family_t sin_family; //协议族,TCP,UDP等协议族就设置为AF_INET... 阅读全文

Go语言_函数学习篇

2012-06-03 08:38 by 轩脉刃, 10780 阅读, 3 推荐, 收藏,
摘要:这里要说一下是Go函数和一些其他语言不一样的地方 1 函数格式不同 func GetMsg(i int) (r string) { fmt.Println(i) r = "hi" return r}func说明这个是个函数GetMsg是函数名(i int) 函数接收一个int参数(r string) 函数返回一个string类型返回值2 函数可以返回多个返回值这点和c,php都不一样,和lua是一样的 func GetMsg(i int) (r string, err string) { fmt.Println(i) r = "hi" err = &qu 阅读全文

Go语言_基础学习篇

2012-06-02 07:36 by 轩脉刃, 18311 阅读, 2 推荐, 收藏,
摘要:GO文件目录结构该图是go-windows的目录结构如图,go的程序应该是在gopath文件夹下的,分为bin, pkg, 和src三个子文件夹src文件夹:每个次级文件夹(如demo)就是代表一个go项目,里面存放源程序bin文件夹:go的每个项目生成的二进制可执行程序。windows下会生成.exe文件,linux下会生成可执行文件。Go的最大特色之一就是可移植性,就是说,当生成一个demo.exe之后,将这个exe文件放在任意一台windows系统上(即使没有安装go安装包),也是可以执行的。这是让PHP,Python等脚本语言望成莫及的。pkg文件夹:第三方库。里面存放你的项目中引用的 阅读全文

服务器性能查看常用命令

2012-06-01 06:35 by 轩脉刃, 23851 阅读, 7 推荐, 收藏,
摘要:最近在调试程序的时候经常需要查看服务器的性能问题。那么到底是需要查看服务器的哪些性能呢,如何查看性能呢?下面主要就说一下一些查看服务器性能的命令。 注:由于参数过多,我只列出了几个常观察的参数,更多的参数说明有附带链接作为参考 free –m 查看内存使用情况 这个命令比较简单,-m 代表下面的是以M为单位 Mem是表示物理内存,主要看 Mem free代表还有多少内存可以 说一下第二行的 -/+ buffers/cache: used = 第一行的used - buffers - cached (表示实际使用的内存总数) free = 第一行的free + buffer... 阅读全文

Linux IO模型漫谈(2)

2012-05-31 09:57 by 轩脉刃, 3378 阅读, 2 推荐, 收藏,
摘要:不管Linux的IO模型的阻塞同步分类是如何分类,几种IO模型的具体实现是确定的。这里借用《Unix 网络编程:卷一》的图片说明。 1 阻塞式IO模型 这个模型也是最容易理解的 程序调用和我们基本的程序编写是一致的: fd = connect() write(fd) read(fd) close(fd) 程序的read必须在write之后执行,当write阻塞住了,read就不能执行下去 2 非阻塞IO模型 从图中可以看出来,这是一个轮询的过程 每次用户询问内核是否有数据报准备好(文件描述符缓冲区是否就绪),当数据报准备好的时候,就进行拷贝数据报的操作。当数据报没... 阅读全文
上一页 1 ··· 36 37 38 39 40 41 42 43 44 ··· 49 下一页