自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(174)
  • 资源 (25)
  • 论坛 (1)
  • 收藏
  • 关注

原创 关于AcceptEx

最基础的IOCP例子, 没有使用扩展函数AcceptEx: IOCP模型* 关于iocp的核心就一点:GetQueuedCompletionStatus 将携带返回2个重要的参数, 一个lpCompletionKey, 一个lpOverlapped.lpCompletionKey : 是 CreateIoCompletionPort((HANDLE)clientSocket , ...

2019-09-20 00:21:19 342

原创 线程安全 可重入

昨天有人问可重入和线程安全, 实际是混在一起淘浆糊了;这2个是完全不同的概念;可重入函数只有在signal下会发生, 比如一个函数在执行时被中断, 在中断处理函数中又一次被调用,这2次(每次)调用都能产生正确的结果,那就个可重入函数;看一个不可重入的例子:void sig_handler(int sig){ ... gethostbyname("www...

2019-07-08 03:42:35 384

原创 一个例子说明volatile

之前一个例子 :另人厌烦的线程安全单例以及不要使用双检测说到了volatile ,volatile本身跟线程没关系, 他只做了一件事:每次读取此变量时,都到内存中去读, 让编译器别优化.gcc -O 进行优化后, 自动变量(int a) 一般情况下都可能被存放在寄存器中;下面代码用回滚操作来说明 volatile 的作用:#include "util.h"#include ...

2019-07-07 14:27:00 121

原创 EPOLL IOCP OVERLAPPED NONBLOCK的一些说明

最简单的多线程 , 多进程最简单的多进程/多线程服务器代码都是用 一个线程 / 一个进程 来接受/发送数据 , 资源消耗太大,不合算; 相当于一对一 [ 一个老师管理一个学生的样子 ];因此有了 select / poll / epoll / iocp 模型 .select / poll 把多个socket交给一个数组来管理 ,epoll 把每个个socket 所关联的事件统一...

2019-07-07 04:07:30 129

原创 EPOLLOUT例子 EPOLLOUT触发条件

下面的代码都在ET下工作群里小伙伴没搞懂EPOLLOUT 再写2个例子; 2个例子都是回声服务器代码;关于EPOLLET的基础 , 以及EPOLLIN|EPOLLOUT|EPOLLET 一起注册的例子:EPOLLET简单例子下面2个例子都是关于EPOLLOUT,第一个例子利用EPOLL_CTL_MOD来触发EPOLLOUT,这种方式不太好,需要利用一次系统调用epoll_w...

2019-07-05 03:01:43 3974 1

原创 边缘模式EPOLLET EPOLLOUT简单例子

给群里写的,简单的EPOLLET 例子:EPOLLOUT详细说明下面2个服务器例子 ,一个没有处理EPOLLOUT, 另一个处理了;第一个例子只用来展示EPOLLET 的特点第2个例子是一个echo服务器, 处理了EPOLLOUT,如果要看EPOLLOUT的直接往下拉到第个例子, 主要还是看 errno == EAGAIN 这些地方在ET模式下:对于EPOLLIN...

2019-07-01 20:17:43 705

原创 就给人写了个内存池

写了一个简单的内存池; 主要用于需要不断的创建和销毁对象已经重载了new/delete;基本使用就3个接口1. MemMgr::alloc 分配内存 (new 调用这个)2.MemMgr::dealloc 释放 (delete调用这个)3. MemMgr::createpool 创建内存池 ; 唯一需要额外调用的函数基本思想就是在每个内存块前加一个MemBlock用于管理...

2019-06-21 18:38:53 95

原创 因多线程引起的new关键字说明

在线程安全单例以及不要使用双检测说了new产了3个步骤;分配内存 调用构造函数 把地址返回2 和 3 由编译器来完成;有的小伙伴不太懂,说明一下;先给结论:使用关键字(new,delete)和直接调用全局函数(operator new / delete ) 不一样的 , 编译器会做额外的事new关键字调用 先::operator new 分配空间 - &gt...

2019-06-19 01:05:10 408

原创 简易win32线程池实现

线程池大致情况: 下面的代码没用c++封装,可自行封装,只提供了3个函数 :创建 , 添加任务, 停止并销毁线程池;思路:先起N个线程 ( _beginthreadex / pthread_create) ,问题是用什么办法先让这些线程暂停 , 并且让这些线程得到通知后再执行某个函数呢?下面的实现是用条件变量, 每次调用添加任务就发送一个信号 , 一旦某个线程抢占到 去某个[ 队...

2019-06-05 18:59:13 259

原创 twisted 以及相关源码

官方文档不怎么友好..哈哈哈自己写了个总体按照:https://twistedmatrix.com/documents/current/core/howto/servers.html来写twisted总体就是一个循环. 下面我会按照 socket编程 的习惯来说明第一个例子: 里面有2个类说简单说明一下:1. Protocol 类, 内部封装了一个 transport ...

2019-02-26 02:51:52 288

原创 scrapy Spider CrawlSpider redis 总汇以及一些源码分析

scrapy 流程图 玩scrapy 时,一直看着这张图就ok.scrapy需要的基础 : lxml ( xpath) ,  关键字 yield ( 生成器)  . 生成器我的博客中有很多文章.可以自己去找 . 下面先说一下scrapy的全貌:一个最简单的Spider : 基本上你用scrapy创建的跟我的差不多.class ChoutiSpider(scrapy.Spi...

2019-02-19 18:27:00 660

原创 gevent gevent.queue gevent读取文件

gevent 一种异步的方式,基于事件循环..   跟 asyncio 里的东西运作的差不多官方手册说的太不清楚 . 自己写了个入门教程.一个最简单的例子:spawn 将把你的函数封装成一个个协程对象 # 注意. gevent.sleep 不是 time.sleep . 下一个例子说明def fuck1(arg): print('我在这: ',fuck1.__...

2019-01-30 03:33:38 733

原创 IOCP 完成端口服务器模型

IOCP 的前身 :纯重叠io服务器模型前提:IOCP的整体编程模型跟上面的纯重叠io 非常类似. 纯重叠io使用OVERLAPPED + APC函数完成.这种模型的缺点是必须让调用apc函数进入alterable状态. 而IOCP解决了这个问题.IOCP让我们自己创建一些线程,然后调用GetQueuedCompletionStatus 来告诉我们某个io操作完成, 就像...

2019-01-17 17:12:42 179

原创 纯重叠io服务器模型

基础:套接字重叠io客户端: telnet 或者自己随意写一个;纯重叠实现的服务器模型,基本上就是使用OVERLAPPED和APC函数完成.APC函数即需要使用alterable状态的函数 , 例 SleepEx.另外重叠io与非阻塞是2个概念.下面的代码中使用到了非阻塞io, 仅仅作用在了accept上. 让其不阻塞;原因是如果阻塞accpet 就没法调用到Slee...

2019-01-15 17:32:18 229 1

原创 套接字socket重叠io

编写模型基本与本地重叠io一致 .本地OVERLAPPED另:重叠io 并非是 非阻塞io,两者是不同的概念重叠io是让操作系统帮忙在后台运行, win上的OVERLAPPED , linux上的 aio 系列函数,他们告诉你何时完成非阻塞io是自己判断何时操作完成(例如WSAEWOULDBLOCK , EAGAIN), 比如EPOLL的ET模式:epoll select的限制 条...

2019-01-14 20:38:27 435

原创 异步io通知 WSAEventSelect

WSAEventSelect 就是 select的增强版;注意WSAEventSelect 是通知异步, 而不是传送数据异步;总的来说就是一个异步的阻塞模型; 如果要与 select 做个比较的话 :select 在 需要进行或者可以进行io处理时 返回. 而WSAEventSelect 在返回时(WSAWaitForMultipleEvents) 与io状态无关;例如: ...

2018-12-28 18:29:37 166

原创 epoll select的限制 条件触发 边缘触发

结论: epoll 要优于 select ,纯粹个人测试结果. 编程模型基本一致题外话:在io复用中把监听套接字设为非阻塞EPOLL描述以及EPOLLOUT处理EPOLLOUT详细例子下面代码中的epoll是最简单的实现, 一般情况都会自定义结构体赋值给 event.data.ptr,同时注意如果在使用边缘(ET)触发时给监听socket设置EPOLLET ,...

2018-12-26 12:39:47 378

原创 多个缓冲区

 #include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <stdlib.h>#include <semaphore.h>#include <pthread.h>#includ

2018-12-01 03:04:19 307

原创 完成端口读取文件

完成端口首先得了解什么是重叠io OVERLAPPED I/O 异步APC下面的例子只告诉你怎么写这个程序, 不是告诉你理论,即如果在服务器上为什么不使用一个线程一个客户的模型CreateIoCompletionPort  创建一个完成端口. 这个函数有一般需要调用2次     第一次:HANDLE iocp = CreateIoCompletionPort(INVALID_HANDL...

2018-10-31 18:13:22 666

原创 多缓冲区读写文件

 使用 OVERLAPPED 来读写大文件还错,如果是小文件性能不是特别好 , 这个仅仅是自己电脑的测试.用多缓冲区来读写会比较快 一个例子:const int __BUFFSIZE = 8192; //存放大小const int __LEN = 10; //10个缓冲区struct{ struct{ ...

2018-10-30 21:34:34 240

原创 OVERLAPPED I/O 异步APC

 APC简介:APC附: 套接字中的WSAOVERLAPPED 和 OVERLAPPED 是一个东西. OVERLAPPED 中的InternalHigh 用于显示当前读取了多少字节. Internal 用于显示错误信息, 0 即无错误;GetOverlappedResult 返回的字节以及错误都是根据 OVERLAPPED  结构中的字段来提取的.这也是为什么GetOverl...

2018-10-30 16:57:29 1074

原创 日志 多线程 自动刷新 _fwrite_nolock

只启动了一个线程 用来写日志.性能方面没问题, 支持多线程写入.每3秒自动查看缓冲区是否有数据,有就写入 .或者外部N个线程同时写满一块缓冲区,进行写入.主要是减少少量数据[几个字节]就写入一次的次数.写入方面可以用 WriteFile 或者_fwrite_nolock. 如果用用WriteFile 还可以使用APC来通知,目前没此需求另外,写入出错方面,只是简单的打印,可自行修改的完善一些如果没有别的需求,直接使用Log类即可Log : start() 启动, s...

2020-07-28 23:29:30 73

原创 win32 定时器 CreateThreadpoolTimer CreateTimerQueueTimer

linux 下可以使用timerfd_create 一系列函数win32下CreateThreadpoolTimer 或者CreateTimerQueueTimer 都可以用进程默认的线程池来使用回调对于DeleteTimerQueueTimer 以及DeleteTimerQueueEx 最后一个参数需要注意一下如果是 INVALID_HANDLE_VALUE : callback如果正在调用则等待回调完成如果是 NULL : callback 如果正在调用,则G...

2020-07-27 23:33:24 132

原创 德州扑克

一个快速计算德州扑克牌型的方法.只有生成图那个地方是关键, 看懂了就全懂了在车上写的, 只写了 同花和 顺子, 似乎没什么问题牌用16进制表示 , 高4位 是颜色位, 低4位是数值位/* 黑桃从 0x02开始, 红心从 0x12 开始 16进制的高位 表示颜色 , 低位表示牌值*/enum CardColor{ enum_spade ...

2020-03-29 21:56:29 148

原创 安全随机数

随机数出问题了, 分装了一个#include <Wincrypt.h>#include <Realtimeapiset.h>#include <tchar.h>#pragma comment(lib,"Advapi32.lib")class CryptRandom{ CRITICAL_SECTION __lock; HCRYP...

2020-03-20 21:50:41 134

原创 安全随机数

int GetRandBytes(void * const buffer, const int iLen){ if(NULL == buffer || 0 == iLen ) return -1; HCRYPTPROV hProvider = 0; DWORD dwRes =::CryptAcquireContext(&hProvider, 0,...

2020-03-20 01:33:48 81

原创 js Promise
原力计划

一句话: promise 用来管理异步调用用 Promise.then 处理异步调用的返回结果, 无非成功、失败;-------------->>>>>>>>> Promise 的作用是状态的传递; <<<<<<<<<<<--------------------...

2020-03-13 01:34:44 53

原创 eventfd

eventfd : 一个计数器,类似信号量;eventfd 一般用于多线程,多进程,epoll返回一个fd , 可读写;write函数用于给计数器累加数值, 例如: // 计数器初始化 : 0 int _eventfd = eventfd(0,EFD_CLOEXEC); uint64_t t =2;// 写入一个2, 则此时 计数器+= 2 ...

2019-11-18 01:23:51 155

原创 epoll Reactor 与 iocp 模型

epoll reactor : 能收了告知我 !iocp : 最多给我收wsabuf.len个字节, 收完告诉我!

2019-11-06 23:25:01 133

原创 atomic 内存序

提高性能的一种方式atomic 替换mutex内存序跟原子操作本身并不冲突, 不论用那种内存序该原子还是原子操作atomic内存序: 就是来指定顺序的例子:注 : 像类似 memory_order_relaxed 都是以函数为单位来重新排执行指令的 [这个注释后面再来看好了]#include <atomic>atomic<int> a (0);...

2019-11-01 03:12:06 233

原创 c++ atomic 替换锁

有些文不对题了;最近搞线程池并发过程中突然想起来用 原子类型 来替换一些mutex, rwlock, cond这些东西;比如一个reactor 的epoll+线程池[ 例如4个 ], 在发送数据时为了保证tcp socket的数据顺序,必须加锁处理 [这种模型不容易控制, 实际工程中别用, 对于 socket 还是有一个线程来处理最简单也避免竞争问题].然后我发现了个好东西;...

2019-10-31 01:04:17 437

原创 花花公子 243线SLOT

另一种243线的SLOT游戏3*5的数组具体思路, 每个数组元素根据14个图案的概率去随机获取,如果无法获取到则先赋值-1, 最后把-1的元素全部替换成无法赢钱的图案,这些图案中不能包含WILD和SCATTER,我这的代码里概率设置的很低#include <random>#define RATELEN 15#define ROW 3#define LINE...

2019-10-11 01:10:19 161

原创 花花公子

一个3*5的矩阵至少连续3个列都出现同一个卡牌算赢, 无视位置比如:1 0 0 0 00 1 0 0 00 0 1 0 0思路: 先计算所有不算位置 , 而能赢的全排列数据#define Row 3#define Line 5int main(int argc, char* argv[]){ using namespace std; ...

2019-09-26 01:26:39 1483

原创 多线程记录二进制流文件

一个生产者多消费者的应用 , 代码里目前就先简单用了单生成单消费,每一局麻将都需要记录:每一次的发牌,抓牌,出牌 ,吃碰杠胡听;把所有的牌 序列化成二进制存入文件每一局麻将生成一个key , 可随意自己组合下面代码思路仅供参考, 还未测试过; 可修改成多线程日志主线程唯一需要在开始的时候调用一次 start , 记录用push;2种模式可选, 一种不关闭文件han...

2019-09-07 16:28:57 65

原创 c++ 胡牌 听牌

生成一张N维的图去分析, 比较容易一些这个是2人麻将, 4人麻将改几个数值就可以用了;判断胡牌的思路:比如 :1~9万, 0x01 ~ 0x09 ;1~9筒 , 0x11~0x19;1~9条 , 0x21~ 0x29;东南西北中发白 : 0x31 ~ 0x39花牌 : 0x41 ~ 0x48;弄一个 arr[4][10] 的数组, 做一个牌型的图出来...

2019-08-31 16:44:46 102

原创 老虎机 抽奖 概率

适用于任何需要概率的游戏; 没几行代码;主要是生成一个概率数组 , 接下去每次随机一个数, 去这个数组里选取对应的值#include <random>//从概率数组中 拿个索引, 对应概率数组int get_rate_index(long double * arr,int len ,long double rand_num){ for(int i = 0 ...

2019-08-22 23:37:57 907

原创 从数组中任取N个数重新生成全排列N维数组

代码只给出一个思路, 都写注释里了, 可以根据需求生成N维数组的各种位置的全排列数组;比如 [1,2,3] 来生成一个3*3的全排列数组;下面生成了一个 3* 3的数组 , 用于各种位置的变化,如果需要更多维度的不同位置的全排列数组, 继续增加 do while 来全排列即可;#include <iostream>#include <algor...

2019-08-22 22:35:35 108

原创 基于多线程的EventSelect

单线程的:异步io通知 WSAEventSelect单线程上最多只能接受64个event;改版多线程的 , 大概思路:1. 主线程就接受一个监听套接字, accept返回的socket 仍到全局队列中2. 一个分配socket的线程 用于控制 socket 分配到哪个 监听事件的线程中去 [ dispath thread] ;3. 创建一个线程池 默认4个线程, 每个线程分别...

2019-08-13 17:50:35 86

原创 numpy pil 4行代码修改图片颜色 倒置 马赛克

群里的人问怎么改图片颜色.numpy + PIL 实现;主要还是用了numpy中的切片, 和指定元素顺序功能比如:kk =[[[1,2,3],[4,5,6]],[[10,9,8],[7,8,9]]]d = np.array(kk)print(d)print("-" * 10)print(d[:,:,[2,0,1]]) #[2,0,1] -> 把原来的0,1,2 换个...

2019-07-30 18:38:02 525

原创 jquery 几行代码实现弹幕

<html><head> <title>Title</title> <style type="text/css"> .div_class{ background-color: aqua; width: 800px; height: ...

2019-07-30 04:36:18 108

汇编语言(第3版)

汇编语言 王爽 带书签 完整版 带书签 带书签 带书签

2017-10-12

UNIX环境高级编程

本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。

2017-10-21

精通Scrapy网络爬虫 书签 清晰

精通Scrapy网络爬虫

2019-03-05

UNIX网络编程 卷2 进程间通信

两卷本的《UNIX网络编程》是已故著名技术作家W. Richard Stevens的传世之作。卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。良好的进程间通信(IPC)机制是提高UNIX程序性能的关键。本书全面深入地讲解了各种进程间通信形式,包括消息传递、同步、共享内存及远程调用(RPC)。书中包含了大量经过优化的源代码,帮助读者加深理解。这些源代码可以从图灵网站本书网页免费注册下载。

2017-10-21

UNIX网络编程卷1

这是一部传世之作!顶级网络编程专家Bill Fenner和Andrew M. Rudoff应邀执笔,对W. Richard Stevens的经典作品进行修订。书中吸纳了近几年网络技术的发展,增添了IPv6、SCTP协议和密钥管理套接字等内容,深入讨论了最新的关键标准、实现和技术。 书中的所有示例都是在UNIX系统上测试通过的真实的、可运行的代码,继承了Stevens一直强调的理念:“学习网络编程的最好方法就是下载这些程序,对其进行修改和改进。只有这样实际编写代码才能深入理解有关概念和方法。”读者可以从图灵网站(www.turingbook.com)本书网页免费注册下载这些示例的源代码。 本书为UNIX网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。

2017-10-21

Redis开发与运维 付磊

Redis开发与运维(付磊)

2019-03-05

Boost程序库完全开发指南 第3版 中文 完整目录

Boost程序库完全开发指南

2019-03-06

深入实践Boost

深入实践Boost 深入实践Boost

2019-03-06

Python网络编程 Python网络数据采集

本书采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导。第 1部分重点介绍网络数据采集的基本原理:如何用Python从网络服务器请求信息,如何对服务器的响应进行基本处理,以及如何以自动化手段与网站进行交互。第 二部分介绍如何用网络爬虫测试网站,自动化处理,以及如何通过更多的方式接入网络。

2018-06-09

TCP/IP网络编程[韩] 尹圣雨

第一部分主要介绍网络编程基础知识。此部分主要论述Windows和Linux平台网络编程必备基础知识,未过多涉及不同操作系统特性。 第二部分和第三部分与操作系统有关。第二部分主要是Linux相关内容,而第三部分主要是Windows相关内容。从事Windows编程的朋友浏览第二部分内容后,同样可以提高技艺。 第四部分对全书内容进行总结,包含了作者在自身经验基础上总结的学习建议,还介绍了网络编程经典书籍

2018-05-25

Wireshark网络分析的艺术

《Wireshark网络分析的艺术》挑选的网络包来自真实场景,经典且接地气。讲解时采用了生活化的语言,力求通俗易懂,以使读者在轻松阅读的过程中,既可以学到实用的网络知识,又能形成解决问题的思路。 与大多网络图书的课堂式体验不同,阅读《Wireshark网络分析的艺术》的感觉更像在听技术圈的朋友分享经验,除了知识,还有心情和想法。本书的覆盖范围从日常使用的手机App,到企业级的数据中心;从对付运营商的网络劫持,到开发自己的分析工具,不一而足。无论你是系统管理员、实施工程师、技术支持、网管、培训教师,还是开发和测试人员,都适合阅读本书。

2017-10-21

libevent参考手册(中文版)

libevent大概是这样的: 默认情况下是单线程的(可以配置成多线程,如果有需要的话),每个线程有且只有一个event_base,对应一个struct event_base结构体(以及附于其上的事件管理器),用来schedule托管给它的一系列event,可以和操作系统的进程管理类比,当然,要更简单一点。当一个事件发生后,event_base会在合适的时间(不一定是立即)去调用绑定在这个事件上的函数(传入一些预定义的参数,以及在绑定时指定的一个参数),直到这个函数执行完,再返回schedule其他事件。

2019-07-06

redis设计与实现(第二版)

redis设计与实现(第二版)

2019-03-05

Redis实战 清晰 书签

Redis实战 清晰 书签

2019-03-06

Effective.C++.中文版(第3版_中文版) 完整书签

《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)和多线程(multithreading)。 《Effective C++》的重要特征包括: ·高效的 classes、functions、templates 和inheritance hierarchies(继承体系)方面的专家级指导。 ·崭新的 TR1 标准程序库功能应用,以及与既有标准程序库组件的比较。 ·洞察 C++和其他语言(例如Java、C#、C)...

2018-11-26

Effective C++ 完整目录

《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)和多线程(multithreading)。 《Effective C++》的重要特征包括: ·高效的 classes、functions、templates 和inheritance hierarchies(继承体系)方面的专家级指导。 ·崭新的 TR1 标准程序库功能应用,以及与既有标准程序库组件的比较。 ·洞察 C++和其他语言(例如Java、C#、C)...

2018-11-26

libevent深入浅出

libevent大概是这样的: 默认情况下是单线程的(可以配置成多线程,如果有需要的话),每个线程有且只有一个event_base,对应一个struct event_base结构体(以及附于其上的事件管理器),用来schedule托管给它的一系列event,可以和操作系统的进程管理类比,当然,要更简单一点。当一个事件发生后,event_base会在合适的时间(不一定是立即)去调用绑定在这个事件上的函数(传入一些预定义的参数,以及在绑定时指定的一个参数),直到这个函数执行完,再返回schedule其他事件。

2019-07-06

UNIX网络编程卷1 完整目录

《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,根据近几年网络技术的发展,对上一版进行全面修订,增添了IPv6的更新过的信息、SCTP协议和密钥管理套接口的内容,删除了X/Open传输接口的内容。 《UNIX网络编程》(第1卷)(套接口API第3版)内容详尽且具权威性,几乎每章都提供精选的习题,是计算机和网络专业高年级本科生和研究生的首选教材,《UNIX网络编程》(第1卷)(套接口API第3版)也可作为网络研究和开发人员的自学教材和参考书。

2018-11-06

Windows核心编程

《经典重读•Windows核心编程(原书第4版)》是讲解Windows操作系统内部机制的一本专著。作者从基本概念入手,全面系统地介绍了Windows底层实现机制、Windows应用程序的基本构件(包括进程、线程、内存管理、动态链接库、线程本地存储和Unicode)以及各类Windows API等,并列举了大量应用程序示例,精辟地分析了Windows编程的各个难点和要点,为掌握windows编程技巧提供了一条有效的捷径。《经典重读•Windows核心编程(原书第4版)》适合Windows编程人员参考。

2017-10-21

数学之美 [美] 吴军

几年前,“数学之美”系列文章原刊载于谷歌黑板报,获得上百万次点击,得到读者高度评价。读者说,读了“数学之美”,才发现大学时学的数学知识,比如马尔可夫链、矩阵计算,甚至余弦函数原来都如此亲切,并且栩栩如生,才发现自然语言和信息处理这么有趣。 今年,作者吴军博士几乎把所有文章都重写了一遍,为的是把高深的数学原理讲得更加通俗易懂,让非专业读者也能领略数学的魅力。读者通过具体的例子学到的是思考问题的方式 —— 如何化繁为简,如何用数学去解决工程问题,如何跳出固有思维不断去思考创新。

2017-10-12

TCP/IP Sockets编程

TCP/IP Sockets编程(C语言实现 第2版),ISBN:9787302211372,作者:(美)多纳霍,(美)卡尔弗特

2017-10-21

C语言程序设计-现代方法

《C语言程序设计现代方法》最主要的一个目的就是通过一种“现代方法”来介绍C语言,实现客观评价C语言、强调标准化C语言、强调软件工程、不再强调“手工优化”、强调与c++语言的兼容性的目标。《C语言程序设计现代方法》分为C语言的基础特性。C语言的高级特性、C语言标准库和参考资料4个部分。每章都有“问与答”小节,给出一系列与本章内容相关的问题及其答案,此外还包含适量的习题。

2017-10-13

Unix-Linux编程实践教程

操作系统是计算机最重要的系统软件。Unix操作系统历经了几十年,至今仍是主流的操作系统。本书通过解释Unix的工作原理,循序渐进地讲解实现Unix中系统命令的方法,让读者理解并逐步精通Unix系统编程,进而具有编制Unix应用程序的能力。书中采用启发式、举一反三、图示讲解等多种方法讲授,语言生动、结构合理、易于理解。每一章后均附有大量的习题和编程练习,以供参考。

2017-10-21

python-parallel-programmning-cookbook

python-parallel-programmning-cookbook

2019-03-05

Linux高性能服务器编程

全书共17章,分为3个部分:第一部分对Linux服务器编程的核心基础——TCP/IP协议进行了深入的解读和阐述,包括TCP/IP协议族、TCP/IP协议,以及一个经典的TCP/IP通信案例;第二部分对高性能服务器编程的核心要素进行了全面深入的剖析,包含Linux网络编程API、高级I/O函数、Linux服务器程序规范、高性能服务器程序框架、I/O复用、信号、定时器、高性能I/O框架库Libevent、多进程编程、多线程编程、进程池和线程池等内容,原理、技术与方法并重;第三部分从侧重

2019-07-06

一道关于getchar与scanf连用的题目如何解

发表于 2012-02-10 最后回复 2012-02-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除