Jamal的博客

Jamal的博客


  • 首页

  • 分类

  • 归档

  • 标签
Jamal的博客

Linux-epoll实例

发表于 2017-04-26

好长时间没写doc了,前面欠的几篇doc也都没写完,这段时间一直忙着装修了,罪过罪过。

Jamal的博客

一个好的vim插件配置

发表于 2017-04-26 | 分类于 vim

详情见: https://github.com/yangyangwithgnu/use_vim_as_ide

Jamal的博客

tcp握手和socket通信细节

发表于 2017-04-17 | 分类于 Tcp

socket的为网络通信协议提供了编程接口,socket就是不同计算机之间进行通信的一个抽象。普通的cs通信过程模型:

阅读全文 »
Jamal的博客

minftpd-开始

发表于 2017-04-15 | 分类于 minftpd

闲来无事,准备写个minftp,多进程模式,代码放在:https://github.com/jamal-jiang/minftpd。
闲话少说,先画一下系统设计图:

阅读全文 »
Jamal的博客

clion编译《unix网络编程》源码

发表于 2017-03-27 | 分类于 Linux

在学习unix网络编程的过程中我们都没

Jamal的博客

Python-yield漫谈

发表于 2017-03-26 | 分类于 Python

Python的yield其实是一个生成器的实现,在python里其实是一个协程的作用,协程的概念很早就被提了出来,在很多较新的语言里面都能看到这样的实现(Python,go,erlang等),在老一些的语言(C/java等)还没有支持这样的语法。
谈到协程,就不得不谈谈高性能服务器设计,我们知道,在高性能的web服务器设计上,一般都有这么几种架构:多进程、多线程、异步非阻塞,我们先来说这几种:

1. 多进程

大名鼎鼎的Apache就是多进程的典型实现,主进程只负责监听请求和管理连接,由子进程来负责具体的业务处理,这样设计的好处是当一个子进程挂掉的时候,并不会影响主进程的使用,但是这样使用的缺点也是显而易见的,在高并发请求的场景下,apache很容易创建出成千上万的子进程,子进程的创建占用大量的资源,进程切换带来了大量的上下文切换时间。但是这样的好处也是很明显的,在并发量不是很大而且是以计算为主的请求上,由于此时没有大量io,多进程处理显然是更有利的一种方式。

2. 多线程

多线程其实是多进程的一种改进,好处是可以共享进程的内存空间

Jamal的博客

Python-理解*args,**kwargs

发表于 2017-03-23 | 分类于 Python

先来看个例子:

1
2
3
4
5
6
7
8
9
10
def foo(*args, **kwargs):
print 'args = ', args
print 'kwargs = ', kwargs
print '---------------------------------------'
if __name__ == '__main__':
foo(1,2,3,4)
foo(a=1,b=2,c=3)
foo(1,2,3,4, a=1,b=2,c=3)
foo('a', 1, None, a=1, b='2', c=3)

阅读全文 »
Jamal的博客

Linux-也谈Apache和Nginx的网络模型

发表于 2017-03-23 | 分类于 Linux

看这个话题之前,我们先来看下之前的文章:,https://jamal-jiang.github.io/2017/03/23/Linux-%E9%98%BB%E5%A1%9E%E9%9D%9E%E9%98%BB%E5%A1%9E%EF%BC%8C%E5%90%8C%E6%AD%A5%E5%BC%82%E6%AD%A5%E7%9A%84%E5%8C%BA%E5%88%AB/

阅读全文 »
Jamal的博客

Linux-阻塞非阻塞,同步异步的区别

发表于 2017-03-23 | 分类于 Linux

要理解这两个概念,首先我们做一个简单的比喻:

阅读全文 »
Jamal的博客

Python-理解PYTHON中的装饰器

发表于 2017-03-22 | 分类于 Python

python的函数是对象

要理解装饰器,首先,你必须明白,在python中,函数是对象. 这很重要.

阅读全文 »
1…345…7
jamal-jiang

jamal-jiang

程序员,技术,生活

62 日志
19 分类
40 标签
© 2018 jamal-jiang
由 Hexo 强力驱动
主题 - NexT.Pisces