胡伟煌

个人博客

Golang系列(三)之并发编程

(一)并发基础 1.概念 并发意味着程序在运行时有多个执行上下文,对应多个调用栈。 并发与并行的区别: 并发的主流实现模型: 实现模型 说明 特点 多进程 操作系统层面的并发模式 处理简单,互不影响,但开销大 多线程 系统层面的并发模式 有效,开销较大,高并发时影响效率 基于回调的非阻塞/异步IO 多用于高并发服务器开发中 编程复杂,开销小 协程 用户态线程,不需要......

Nginx的部署与配置

1. 部署 1.1. 使用安装包的方式 rpm -ivh nginx-xxx.rpm 1.2. 使用源代码安装 1.2.1. 下载源码包 1wget http://blob.wae.haplat.net/nginx/nginx-1.9.13.tar.gz 1.2.2. 创建临时目录并解压源码包 12mkdir $HOME/buildcd $HOME/build && tar ......

Nginx http服务器

1. Nginx的系统架构 Nginx包含一个单一的master进程和多个worker进程,每个进程都是单进程,并且设计为同时处理成千上万个连接。 worker进程是处理连接的地方,Nginx使用了操作系统事件机制来快速响应这些请求。 master进程负责读取配置文件、处理套接字、派生worker进程、打开日志文件和编译嵌入式的perl脚本。master进程是一个可以通过处理信号量来管理请......

Nginx作为反向代理

1. 反向代理简介 Nginx可以作为反向代理,接收客户端的请求,并向上游服务器发起新的请求。该请求可以根据客户端请求的URI,客户机参数或其他逻辑进行拆分,原始URL中的任何部分可以以这种方式进行转换。 1.1. 代理模块指令 指令 说明 proxy_connect_timeout Nginx从接受到请求到连接至上游服务器的最长等待时间 proxy_cookie_doma......

[Python] Python系列(四)之面向对象编程

1. 类和实例 在Python中所有的数据类型都可以视为对象,也可以自定义对象。自定义的对象数据类型即面向对象中的类(Class)概念。类是抽象的模板,实例是具体的对象。 类的定义 Python使用class关键字定义类: 12345678class Student(object): def __init__(self, name, score): self.name =......

[Python] Python系列(三)之高级特性

1. 切片 切片操作(slice),即从list(tuple是一种特殊的list)中获取部分元素。 L[m,n]表示从L[m]~L[n-1]的list。 L[:n]表示从L[0]~L[n-1]的list。 L[m:]表示从L[m]~L[len(L)-1]。 L[-m:]表示倒数m个数的list。 L[m:n:k]表示从L[m:n]list中每k个取一个数组成一个新的list。 L[::k]......

[Python] Python系列(二)之Python函数

1. 内置函数 python的内置参数详见以下链接,也可以通过help(function_name)来查看具体函数的使用帮助。 http://docs.python.org/3/library/functions.html#abs Built-in Functions abs() dict() help() min() setattr() all() dir() h......

[Python] Python系列(一)之基础篇

1. 数据类型和变量 ​ Python使用缩进来组织代码块,一般使用4个空格的缩进。使用#来注释一行,其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。Python对大小写敏感。 1.1 整数 ​ Python可以处理任意大小的整数,包括负整数,写法与数学上写法一致,例如:-100。如果用十六进制表示,则用前缀为0x和0-9,a-f表示,例如:0xff00。 1.2 浮点数......

单元测试

1. Go中的测试框架 Go语言中自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试,testing框架和其他语言中的测试框架类似,你可以基于这个框架写针对相应函数的测试用例,也可以基于该框架写相应的压力测试用例。 2. 单元测试原则 文件名必须是_test.go结尾的,这样在执行go test的时候才会执行到相应的代码 你必须import test......

Http包源码分析

1. http包建立web服务器 1234567891011121314151617181920212223242526package mainimport ( "fmt" "log" "net/http" "strings")func sayhelloName(w http.ResponseWriter, r *http.Request) { r.P......