青山相待

            白云相爱

            梦不到紫罗袍共黄金带

            一茅斋

            野花开

            管甚谁家兴废谁成败

            陋巷单瓢亦乐哉

            贫,气不改!

            达,志不改!

上一页 1 2 3 4 5 6 ··· 14 下一页
摘要: linux的信号来源 1.由一个进程发给另一个进程(或本身) 2.内核发给进程 信号的特征 异步的,分为可靠信号和不可靠信号。 进程收到信号时怎么处理1.执行信号处理程序2.如果收到信号时处在一个阻塞函数中,中断当前系统调用并执行信号处理程序3.如果想要信号处理程序后恢复被中断的系统调用,需要设置S 阅读全文
posted @ 2016-07-08 11:36 Leo.Z 阅读(209) 评论(0) 推荐(0) 编辑
摘要: PDU 协议数据单元,有隐藏size上限,如果应用程序的包超过指定上限会被划分为多个PDU发送 TCP不提供记录结束标记,需要应用程序自己提供,比如http的\r\n 编写TCP协议需要注意IPV4和IPV6的兼容性,可以在应用程序中实现协议无关性。 getaddrinfo getaddrinfo 阅读全文
posted @ 2016-07-08 09:34 Leo.Z 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 基础要素 任务/数据划分 多个控制流并行,划分带来的负载均衡和通信开销也对程序的性能有决定性的作用 并发访问控制 多个控制流需要访问不同或者相同的资源,如何协调这些资源变得非常重要 并行化和面向对象 并行需要去除数据和控制的依赖关系,而面向对象把大问题解决成小问题,然后通过对象之间的通信来解决小问题 阅读全文
posted @ 2016-07-07 15:00 Leo.Z 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 概要 redis的每个server实例都维护着一个保存服务器状态的redisServer结构 struct redisServer { /* Pubsub */ // 字典,键为频道,值为链表 // 链表中保存了所有订阅某个频道的客户端 // 新客户端总是被添加到链表的表尾 dict *pubsub 阅读全文
posted @ 2016-07-03 11:22 Leo.Z 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 前言 C10K problem提出了一个问题,如果1w个客户端连接到server上,间歇性的发送消息,有哪些好的方案? 其中的一种方案是,每个线程处理多个客户端,使用异步I/O和就绪通知机制,redis无疑是一个很好的榜样 redis的特点和C10K proble的契合点 内存数据库; 单线程支持上 阅读全文
posted @ 2016-07-03 01:37 Leo.Z 阅读(1028) 评论(0) 推荐(0) 编辑
摘要: 引言 C10K problem提到一种zero-copy的技术,可以提高网络的吞吐量,分布式消息队列kafka中在消费者消费消息的时候根据offset进行zero-copy。linux下的zero-copy通过sendfile API实现。 什么是zero-copy zero-copy在概念上是值操 阅读全文
posted @ 2016-07-03 00:33 Leo.Z 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 什么是C10K问题 I/O策略 软件架构 1.单线程解决多重I/O调用 不要使用阻塞/同步的调用,如果非要这么做,那就采用多进程或者多线程来并发处理。 使用非阻塞的调用和就绪通知策略,当下一个I/O可用时通知调用者。适用于套接字I/O,而不是磁盘I/O. 使用异步的调用和通知策略,当下一个I/O可用 阅读全文
posted @ 2016-07-03 00:06 Leo.Z 阅读(270) 评论(0) 推荐(0) 编辑
摘要: reactor介绍 reactor的工作模式就像它的名字一样,是一种反射模式,当事件发生时,根据发生的事件调用注册的处理器。 Reactor的优点和应用 Reactor最常用于非阻塞的socket 传统的设计是一种同步的停等协议,读写操作执行后要等待当前fd的下一次可读/写事件,这期间什么都不能干, 阅读全文
posted @ 2016-07-03 00:05 Leo.Z 阅读(1960) 评论(0) 推荐(0) 编辑
摘要: libev是一个开源库,实现了一个reactor模式事件驱动任务调度库。代码非常精简,包含所有实现的.c文件只有不到5000行。 支持的事件类型: ev_io ev_timer ev_periodic ev_signal ev_child ev_stat ev_idle ev_prepare and 阅读全文
posted @ 2016-07-03 00:04 Leo.Z 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 引用类型的返回值与非引用类型的返回值 非引用类型的返回值处理: 调用函数的时候会创建一个临时对象,用函数返回值初始化临时对象与用实参初始化形参是一样的。如果返回值不是引用,会将返回值复制给临时对象,且其返回值既可以是临时对象,也可以是表达式求解的结果。 引用类型的返回值处理: 当函数返回引用类型时, 阅读全文
posted @ 2016-04-21 21:31 Leo.Z 阅读(217) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 14 下一页