第3月第16天 fd_set 32 ACE_TP_Reactor
1.
#ifdef FD_SETSIZE
#define __DARWIN_FD_SETSIZE FD_SETSIZE
#else /* !FD_SETSIZE */
#define __DARWIN_FD_SETSIZE 1024
#endif /* FD_SETSIZE */
#define __DARWIN_NBBY 8 /* bits in a byte */
#define __DARWIN_NFDBITS (sizeof(__int32_t) * __DARWIN_NBBY) /* bits per mask */
#define __DARWIN_howmany(x, y) ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) /* # y's == x bits? */ __BEGIN_DECLS
typedef struct fd_set {
__int32_t fds_bits[__DARWIN_howmany(__DARWIN_FD_SETSIZE, __DARWIN_NFDBITS)];
} fd_set;
__END_DECLS
http://www.cnblogs.com/scope-beyound/p/3628217.html
2.
其中 TP 即 Thread-Pool 的缩写。与 ACE_WFMO_Reactor 的完全多线程并行处理不同,TP_Reactor 仅实现了部分的并行,这是由于 select 系统调用本身不是多线程安全的,所以在侦测事件时必需保证单线程,但在分派事件时却可以使用多线程,为此 TP_Reactor 实现了一种称为 Leader-Follower 的线程模型:一组线程中,有一个线程充当 Leader 角色,负责侦测事件,其它线程处在空闲待命状态;当事件到达,Leader 线程开始分派事件,在此之前,它选取线程池中的一个线程充当 Leader 角色,而自己在分派完事件后,加入空闲线程池,成为 Follower 角色,如此循环往复,不断推动 Reactor 运行。
http://ace.acejoy.com/forum.php?mod=viewthread&tid=5806
第3月第16天 fd_set 32 ACE_TP_Reactor的更多相关文章
- 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16
一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...
- 指令集架构 x86-64 x86架构的64位拓展,向后兼容于16位及32位的x86架构
https://zh.wikipedia.org/wiki/X86 x86泛指一系列英特尔公司用于开发处理器的指令集架构,这类处理器最早为1978年面市的"Intel 8086"C ...
- mov sreg, r/m16 在16位和32位编程中的区别
总结于<X86汇编语言 从实模式到保护模式> 仅适用于X86系列处理器 1. 两者的区别: 例:mov ds, ax A.在指定16位编译模式下,产生的二进制码是 8E D8 B.在指定3 ...
- laravel 报错 mcrypt_decrypt(): Key of size 11 not supported by this algorithm. Only keys of sizes 16, 24 or 32 supported
修改app/config/app.php文件 将key设置成长度为16,24,32的字符串
- 8位、16位、32位单片机中的“XX位”指什么?
32位单片机的32位是指单片机的“字长”,也就是一次运算中参与运算的数据长度,这个位是指二进制位. 如果总线宽度与CPU一次处理的数据宽度相同,则这个宽度就是所说的单片机位数. 如果总线宽度与CPU一 ...
- 16位和32位的80X86汇编语言的区别
需要注意的是汇编不是一种语言,不同平台有不同的汇编语言对应,因为汇编和操作系统平台相关,所以汇编语言没有移植性.对于IA-32架构平台而言,选用的32位80386汇编语言,也就只说讨论的操作系统平台是 ...
- Java 编程下字符串的 16 位、32位 MD5 加密
package cn.sunzn.md5; import java.security.MessageDigest; import java.security.NoSuchAlgorithmExcept ...
- FPM包定制完成 (等待实现 里程碑 1 和 2) 2018年4月13日 2:18:32
前期环境准备: 关闭SELINUX : setenforce 0 关闭SELINUX : sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' / ...
- 2.5. Integer 16 、Integer 32、Integer 64(Core Data 应用程序实践指南)
Core Data 使用 “带符号的整数”,通常我们会选择Integer 32,如果不够,可以升级为Integer 64 (第3章),通过升级托管对象模型. 这三种类型对应的特性(Property)类 ...
随机推荐
- java.lang.String.getBytes(String charsetName)方法实例
java.lang.String.getBytes(String charsetName) 方法编码将此String使用指定的字符集的字节序列,并将结果存储到一个新的字节数组. 声明 以下是java. ...
- C语言的fopen函数(文件操作/读写)
头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: FILE * fopen(const char * path, c ...
- Openvpn 撤销签署的证书(删除用户)
https://wiki.archlinux.org/index.php/Easy-rsa Revoking certificates and alerting the OpenVPN server ...
- [LeetCode] Super Ugly Number 超级丑陋数
Write a program to find the nth super ugly number. Super ugly numbers are positive numbers whose all ...
- [LeetCode] Add Digits 加数字
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...
- [LeetCode] Gas Station 加油站问题
There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...
- [LeetCode] Word Ladder II 词语阶梯之二
Given two words (start and end), and a dictionary, find all shortest transformation sequence(s) from ...
- 当AngularJS POST方法碰上PHP
问题描述 怎么POST过去给PHP都收不到资料? $_POST方法取不到正确的传入值! 原理说明 AngularJS这套framework使用的AJAX方法中,资料传递的格式为JSON,送出去的hea ...
- 侯捷老师C++大系之C++面向对象开发:(一)不带指针的类:Complex复数类的实现过程
一.笔记1.C++编程简介 2.头文件与类的声明 防卫式声明#ifndef __COMPLEX__#define __COMPLEX__ …… #endif头文件的布局模板简介template< ...
- UNC 目录格式检测C#代码
/// <summary> /// if path is UNC( Universal Naming Convention) path return or return false. // ...