- 博客(12)
- 收藏
- 关注
转载 线程池和内存池的实现
为什么需要线程池?大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时间内必须处理数目巨大的连接请求,但是处理时间却是比较短的。在传统的多线程服务器模型中是这样实现的:一旦有个请求到达,就创建一个新的线程,由该线程执行任务,任务执行完毕之后,线程就退出。这就是”即时创建,即时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数
2017-04-26 13:29:31 2926
转载 Linux中线程同步:互斥锁/信号量/条件变量+无锁队列
基本概念互斥锁,条件变量,信号量 应用互斥锁POSIX线程锁机制的Linux实现都不是取消点,因此,延迟取消类型的线程不会因收到取消信号而离开加锁等待。值得注意的是,如果线程在加锁后解锁前被取消,锁将永远保持锁定状态,因此如果在关键区段内有取消点存在,或者设置了异步取消类型,则必须在退出回调函数中解锁。 这个锁机制同时也不是异步信号安全的,也就是说,不应该在信号处理过程中使用互斥锁,否则容易造成
2017-04-25 14:33:43 1564
转载 select和epoll的区别
select原理概述调用select时,会发生以下事情:从用户空间拷贝fd_set到内核空间;注册回调函数__pollwait; 遍历所有fd,对全部指定设备做一次poll(这里的poll是一个文件操作,它有两个参数,一个是文件fd本身,一个是当设备尚未就绪时调用的回调函数__pollwait,这个函数把设备自己特有的等待队列传给内核,让内核把当前的进程挂载到其中); 当设备就绪时,设备就会
2017-04-23 12:00:17 435
转载 C++知识点(2)
尽量用const,emum,inline替换#define换句话说,“宁可用编译器替换预处理器”,因为或许define不被视为语言的一部分。
2017-04-18 21:48:13 395 1
转载 分布式存储和一致性哈希
关于分布式存储如果单台机子的hashmap存储已经不能满足我们的key-value需求,我们就需要把存储内容分布到不同的实体机上。这时需要一种把key映射到不同机器的方法,我们想起了hash,可以把实体机当做是桶,采用和hashmap实现一样的思路,通过和实体机的数量取模,自然映射到不同的机器。 但现在问题来了,如果其中一台机子挂了,或者又加了一台机子怎么办,这时出现两种情况:不做任何改变,那么
2017-04-18 18:49:12 848
转载 TCP/IP网络协议
3次握手和4次挥手3次握手 首先,Client端发送连接请求报文,Server端接受报文后回复ACK报文,并为这次连接分配资源。 Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。4次挥手 其中,中断连接端可以是Client端,也可以是Server端。 假设Client端发起中断连接请求,发送FIN报文。 这时候,虽然Client端没有数
2017-04-04 14:17:17 2338
转载 Linux系统
最常用的20条命令cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:cd /root/Docements # 切换到目录/root/Docementscd ./path # 切换到当前目录下的path目录中,“.”表示当前目录 cd ../path # 切换到上层目
2017-04-04 14:03:38 1471
转载 C++知识点
智能指针概念void remodel(std::string & str){ std::string * ps = new std::string(str); ... if (weird_thing()) throw exception(); str = *ps; delete ps; return;}当出现异常时(weird_t
2017-04-04 12:39:11 2269 1
转载 面试题:随机数生成、蓄水池抽样、海量数据、设计秒杀系统
等概率生成rand5生成rand3现在有一个Rand5函数,可以生成等概率的[0, 5)范围内的随机整数,要求利用此函数写一个Rand3函数(除此之外,不能再使用任何能产生随机数的函数或数据源),生成等概率的[0, 3)范围内的随机整数。 思路是: 生成0-4的概率是相同的,进一步,生成0-2的概率也是相同的,这就满足了等概率的条件了。int Rand3() { int x; d
2017-04-04 11:47:58 3124 2
转载 网络安全
暴力破解攻击定义暴力破解攻击是指攻击者通过系统地组合所有可能性(例如登录时用到的账户名、密码),尝试所有的可能性破解用户的账户名、密码等敏感信息。攻击者会经常使用自动化脚本组合出正确的用户名和密码。 对防御者而言,给攻击者留的时间越长,其组合出正确的用户名和密码的可能性就越大。如何检测
2017-04-04 10:53:06 746
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人