读书笔记
文章平均质量分 77
liuxuejiang158
做点笔记,省的百度不到。。。
展开
-
Linux高性能服务器编程(笔记2)
字节序:小端字节序指内存高位地址存放数值高位,大端字节序指内存高位存放数值低位。PC一般采用小端字节序,网络一般采用大端字节序,因此需要API转换字节序,htonl()将主机长整型转换位网络长整型,htons(),ntohl(),ntohs()将网络短整型转换为主机短整型,长整型函数一般用于转换IP地址,短整型用来转换端口 Socket 可以被定义描述为两个应用通信通道的端点。一原创 2013-09-26 22:27:49 · 1521 阅读 · 0 评论 -
Linux多线程服务端编程(笔记1)
shared_ptr以const reference方式作为函数参数传递。只要有指向对象x的shared_ptr存在对象x就不会析构,当指向x的最后一个shared_ptr析构或reset时x会被销毁.weak_ptr不控制对象生命期,但是它知道对象是否活着:若对象还活着它可以提升为shared_ptr,否则返回一个空shared_ptr,提升行为是线程安全的。 boost::bind将类似函数原创 2013-09-01 21:45:48 · 1442 阅读 · 0 评论 -
Linux多线程服务端编程(笔记2)
并发编程两种基本模型:messagepassing(分布式多机上的唯一实用模型),sharedmemory 线程同步四项原则:最低限度共享对象,使用高级的并发编程构件,只用非递归的互斥器和条件变量慎用读写锁不用信号量,不要用内核级同步原语更不要自己编写 mutex:任何一个时刻最多只能有一个线程在此mutex划出的临界区内活动,使用mutex的原则:1)使用RAII(使用局部对象管理资源的技术原创 2013-09-08 19:43:35 · 1427 阅读 · 0 评论 -
Linux高性能服务器编程(笔记1)
自底向上:数据链路层,网络层,传输层,应用层 数据链路层:实现了网卡结构的网络驱动程序,以处理数据在物理媒介上的传输。RAP(网络层将目标机器IP地址转换成物理地址才能使用数据链路层的服务)和RARP实现了IP地址和物理地址的转换。 网络层:实现数据包的选路和转发,选择网络中的中间节点。IP(根据数据包的IP地址逐跳投递)和ICMP(主要用于网络检测连接,差错报文主要用来回应网原创 2013-09-20 17:01:24 · 1889 阅读 · 0 评论 -
Linux高性能服务器编程(笔记3)
pipe(int fd[2)其中fd[1]是写端,fd[0]是读端,两端都是阻塞式的,即read读空管道会阻塞write写满管道会阻塞,当写端文件描述符fd[1]计数减为0时read返回0,当读端fd[0]计数减为0时write失败引发SIGPIPE信号。管道内部数据是字节流类似与TCP但是TCP数据窗口大小取决于对方和网络,而pipe本身容量有限制默认65536B可以使用fcntl修改管道容量原创 2013-10-09 20:20:31 · 1954 阅读 · 0 评论 -
Linux高性能服务器编程(笔记4)
kill(pid_t pid,int sig)//一个进程给其它进程pid发送信号sig(0不发送任何信号) 当程序处于阻塞状态的系统调用时接收到信号并且为该信号设置了信号处理函数默认情况下阻塞的系统调用将被中断且置errno为EINTR。可以通过sigaction为信号设置SA_RESTART标志以自动重启被该信号中断的系统调用。对于默认行为是暂停的信号如果没有重新设置信号处原创 2013-10-19 21:19:06 · 1466 阅读 · 0 评论