随笔分类 -  开源项目学习

摘要:evutil: 用于抽象不同平台网络实现差异的通用功能。 event和event_base: libevent的核心,为各种平台特定的、基于事件的非阻塞 IO后端提供抽象API,让程序可以知道套接字何时已经准备好,可以读或者写,并且处理基本的超时功能,检测OS信号。用 libevent 函数之前需要 阅读全文
posted @ 2020-02-12 11:17 坚持,每天进步一点点 阅读(222) 评论(0) 推荐(0) 编辑
摘要:1. libevent简介 Libevent 有几个显著的亮点: => 事件驱动(event-driven),高性能; => 轻量级,专注于网络,不如ACE那么臃肿庞大; => 源代码相当精炼、易读; => 跨平台,支持Windows、Linux、*BSD和Mac Os; => 支持多种I/O多路复 阅读全文
posted @ 2020-02-10 12:43 坚持,每天进步一点点 阅读(4747) 评论(0) 推荐(0) 编辑
摘要:发布订阅模式: PUB发送,send。SUB接收,recv。和PUSH-PULL模式不同,PUB将消息同时发给和他建立的链接,类似于广播。另外发布订阅模式也可以使用订阅过滤来实现只接收特定的消息。订阅过滤是在服务器上进行过滤的,如果一个订阅者设定了过滤,那么发布者将只发布满足他订阅条件的消息。这个就 阅读全文
posted @ 2020-02-09 21:03 坚持,每天进步一点点 阅读(3542) 评论(0) 推荐(0) 编辑
摘要:197 void *zmq_init (int io_threads_) 198 { 199 if (io_threads_ >= 0) { 200 void *ctx = zmq_ctx_new (); 201 zmq_ctx_set (ctx, ZMQ_IO_THREADS, io_thread 阅读全文
posted @ 2020-02-09 17:48 坚持,每天进步一点点 阅读(528) 评论(0) 推荐(0) 编辑
摘要:1 ZeroMQ概述 ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。 2 系统架 阅读全文
posted @ 2020-02-09 14:36 坚持,每天进步一点点 阅读(910) 评论(0) 推荐(0) 编辑
摘要:惊群效应: 举一个很简单的例子,当你往一群鸽子中间扔一块食物,虽然最终只有一个鸽子抢到食物,但所有鸽子都会被惊动来争夺,没有抢到食物的鸽子只好回去继续睡觉, 等待下一块食物到来。这样,每扔一块食物,都会惊动所有的鸽子,即为惊群。对于操作系统来说,多个进程/线程在等待同一资源是,也会产生类似的效果,其 阅读全文
posted @ 2020-02-09 12:01 坚持,每天进步一点点 阅读(924) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示