自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 初见zookeeper

作为一个资深C++程序员, 第一次用java写zookeeper客户端程序, 我完全被震撼到了.用Eclipse创建Maven工程,规范性地填写你的代码组织(groupId),还有工程名称(artifactId). 很容易地创建了一个helloworld的java工程. 从maven仓库(https://mvnrepository.com/) 查找zookeeper的索引信息往pom.xml文件...

2019-03-19 18:50:59 140

原创 具体数学笔记 第3章高德纳数的证明与取模二元运算

高德纳数的证明:假设有一个高德纳数,定义为递归式(3.16)K0=1Kn+1=1+min(2K⌊n/2⌋,3K⌊n/3⌋),n⩾0\tag{3.16}\begin{aligned}K_0 &= 1\\K_{n_+1} &= 1 + min(2K_{\lfloor n/2 \rfloor} ,3K_{\lfloor n/3 \rfloor}), n \...

2019-01-27 22:25:25 511

原创 具体数学笔记 番外篇 数学书中的水平

数学书中出现的水平其实可以分为两大类:一类是已知某种性质, 让你证明*一个对象符合这个已知性质*一群对象符合这个已知性质*一群对象符合,或者不符合这个性质*寻找让这个性质为真的充要条件给你一群对象, 让你自己去探寻这群对象的性质.水平1 给定一个显式对象xxx和一个显式性质 P(x)P(x)P(x),证明 P(x)P(x)P(x)为真.这里的问题在于对所宣称的某个事实寻求一个证...

2019-01-26 23:16:06 363

原创 具体数学笔记. 3.1,3.2 整值函数及顶和底的应用

整数是离散数学的支柱, 我们常常需要将分数或者任意的实数转换成整数. 本章的目的就是熟悉并熟练掌握这样的转换.本篇笔记并不是单纯抄书上的公式. 对例题的推演增加自己的理解步骤.3.1 顶和底对于所有的实数,有如下定义:(3.1)⌊x⌋小于或者等于x的最大整数;⌈x⌉大于或者等于x的最小整数;\tag{3.1}\lfloor x \rfloor {\footnotesize 小于或者等于...

2019-01-24 23:22:37 595

原创 具体数学笔记2.6

这小节的内容用微积分∫\int∫类比累加∑\sum∑, 读起来天马星空. 于是根据我自己的理解重新写了这篇笔记. 记号里和书中的有些许不同在第二章的前几节中,已经学习了多种直接处理合适的方法, 现在需要用更加广阔的视野,从更高的层次来审视求和问题.从微分说起, 微分是指f(x) 在x足够小时,函数值的变化量:即:lim⁡Δx→0f(x+Δx)−f(x)Δx\lim_{\Delta x ...

2019-01-10 22:08:43 332

原创 具体数学第2章笔记

2.1 记号本小节引入了和式的记号∑\sum∑具体有:∑k=1nak\displaystyle\sum_{k=1}^n a_kk=1∑n​ak​表示a1+a2+...+ana_1+a_2 + ...+ a_na1​+a2​+...+an​还可以写成一般形式∑1⩽k⩽nak\sum_{\mathclap{1\leqslant k \leqslant n}} a_{k}1⩽k⩽n​∑​...

2019-01-09 19:50:13 254

原创 具体数学笔记 第一章

约瑟夫问题。依然从研究小的情况开始人数(n)123456幸存者编号J(n)113135可得数学表达式:(1.8)J(1)=1;J(2n)=2J(n)−1;J(2n+1)=2J(n)+1.\tag{1.8}\begin{aligned}J(1)& = 1;\\ J(2n)& = 2J(n) -1;\\J(...

2019-01-04 21:21:48 360

原创 初见mongodb: find命令源码一撇

在上周尽管磕磕碰碰地完成了一次查mongo询任务,但总想一谈工具背后的真相,即为什么Mongodb不支持sql?虽然我知道它是NoSQL系列的, 但还是好奇着它的查询是怎么实现的. 上网找了mongodb的代码,最新版的是4.0.5. https://fastdl.mongodb.org/src/mongodb-src-r4.0.5.zip   匆匆一瞥,尽管Mongodb的源码有超过一万个C...

2018-12-26 10:05:16 853 1

原创 Tail_queue分析

起标题时在犹豫着要不要沿用“libevent源代码分析”,犹豫的原因是tail_queue其实是率属于linux的源代码。它在/usr/local/include/sys/queue.h中。但是我却是在看libevent的时候才发现它的。tail_queue这个名字很奇怪,是个queue却冠以tail前缀。貌似是个新的数据结构,但是一路跟下来却更像是一个双向链表。队列允许中间插值吗?但它可是提

2013-12-26 23:22:01 1484 1

原创 Libevent源代码分析笔记二,初始化

event_base是libevent的核心对象,它代表了libevent的事件处理框架。在libevent的官方网站上,它号称支持  /dev/poll, kqueue(2), event ports, POSIX select(2), Windows select(), poll(2), 跟epoll(4).

2013-12-25 20:34:41 1166

原创 Libevent源代码分析笔记一,初见libevent

项目当中用到了libevent,遂分析之。libevent是一个网络库,在分析它之前,先小结一下服务端网络编程架构:int main(int argc,char** argv) { //Socket初始化 .... //Create epoll .... for(;;) { epoll_wait(epollfd,events,MAXEVENTS,-1)

2013-12-24 23:10:19 757

原创 线程的数量

在计算密集型的程序中,最佳线程数就是CPU的核数*个数。这是因为在SMP(对称多处理器)环境下,每个CPU都有一个可执行队列(run_queue)。如果一个进程处于TASK_RUNNING状态(可执行状态)则它会被加入到其中一个run_queue(且同一时刻仅会被加入到一个run_queue),以便让调度程序安排它在这个run_queue对应的CPU上面运行。一个进程一旦被安排在某个CPU上运

2013-12-17 22:12:02 633

原创 Socket编程中常见的错误

(一)  accept句柄耗尽:服务器每次accept一个链接之后,都会分配新的socket资源。Linux下对每个进程所能使用的文件句柄数是有限制的,默认是1024。扣除stdin,stdout,stderr,只有1021个句柄可用。一旦出现了accept的连接数超过了这个限制后就会很尴尬:accept返回-1,errno = 24,即EMFILE。如果采用Select、poll 或者epo

2013-12-11 12:50:51 3079

原创 轻松应对C10k问题

传统的、教科书里的I/O复用等待函数select/poll在处理数以万计的客户端连接时,往往出现效率低下甚至完全瘫痪,,这被称为C10K 问题。本文尝试着以一个最简单的单线程epoll程序为基础,轻松应对收发数据不频繁的过万客户端并发连接。并以此回顾C10K问题,介绍应对C10K问题的本质方法,线程模式的选择,介绍服务器编程流行的Reactor模式。  顺带介绍怎么应对socket句柄耗尽。

2013-12-08 19:18:00 1086

原创 一步异步Socket---Linux服务器编程入门之非阻塞IO简介

写惯客户端的人总觉得服务器开发高深而又神秘。纵观服务器编程,大概可分为异步I/O线程模式(如几个线程处理SOCKET,几个线程处理计算,线程个数限制等),锁及数据共享,内存池等。本文尝试着客户端程序员的角度为起点,介绍服务端编程的基础---异步I/O。对于客户端程序来讲,Socket是个很简单的东西。阻塞的API,操作完成后才会返回。完全可以像编写本地程序一样的编写网络程序。尤其是VC的C

2013-12-06 21:14:04 855

Debug.Hacks中文版_深入调试的技术和工具

从调试器的基本使用方法,汇编的基础知识开始,到内核错误信息不做,应用程序调试,内核调试,本书深入浅出地讲解了Linux下应用程序和内核调试的技巧。

2013-12-06

空空如也

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

TA关注的人

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