随笔分类 - Linux网络编程
摘要:看我之前的文章就知道,一般对于网络读的socket,都会加上O_NONBLOCK,非阻塞的选项。 为什么要加上呢。是为了效率。下面详细说一下阻塞和非阻塞。 基本概念: 阻塞IO: 必须做完IO操作才会返回。 非阻塞IO:操作成功与否,都会返回,需要通过其他方式判断具体操作是否成功。 读 阻塞与非阻塞
阅读全文
摘要:参考了这篇文章:http://blog.chinaunix.net/uid-24517549-id-4079174.html 关于线程 进程和线程的概念相信各位看官早已耳熟能详。在这里,我只想带大家回忆几点重要概念: 3. 同一进程中的多个线程共享代码段(代码和常量)、数据段(静态和全局变量)和扩展
阅读全文
摘要:试了一下,和Java完全不同。 注意Java和C++对于多线程里面的一个线程抛出异常的影响,完全不同。 Java里面,对于主线程和其他线程完全不受影响; C++里面,整个程序会退出,所有线程都会受影响。 Java的多线程与异常的关系,可以看这里:http://www.cnblogs.com/char
阅读全文
摘要:上一篇学习了共享内存: http://www.cnblogs.com/charlesblc/p/6142139.html 根据这个 http://blog.chinaunix.net/uid-26335251-id-3493125.html 再来一篇: 1. 共享内存允许两个或多个进程共享一给定的存
阅读全文
摘要:上篇文章也蛮好,线程同步之条件变量与互斥锁的结合: http://www.cnblogs.com/charlesblc/p/6143397.html 现在有这篇文章: http://blog.csdn.net/goodluckwhh/article/details/8564319 POSIX定义了一
阅读全文
摘要:注意信号量与条件变量的区别 信号量内容可见:http://www.cnblogs.com/charlesblc/p/6142868.html 信号量、共享内存,以及消息队列等System V IPC三剑客主要关注进程间通信; 而条件变量、互斥锁,主要关注线程间通信。 下面内容参考:http://bl
阅读全文
摘要:刚刚这篇文章学习了共享内存:http://www.cnblogs.com/charlesblc/p/6142139.html 里面也提到了共享内存,自己不进行同步,需要其他手段比如信号量来进行。那么现在就学习信号量咯。 共享内存实际编程中, 应该使用信号量, 或通过传递消息(使用管道或IPC消息),
阅读全文
摘要:作为最快的IPC方式,共享内存当然得好好学一下咯。 System V进程间通信方式:信号量、消息队列、共享内存。他们都是由AT&T System V2版本的UNIX引进的,所以统称为System V IPC. 除了下面讲的System V IPC,还有mmap也可以将文件进行内存映射,从而实现共享内
阅读全文
摘要:参考这篇文章,很不错: http://www.cnblogs.com/qiaoconglovelife/p/5734768.html
阅读全文
摘要:因为这道题目经常被问到。干脆总结一下,免得遗漏了。 参考文章:http://www.cnblogs.com/qiaoconglovelife/p/5735936.html 1 本质上都是同步I/O 三者都是I/O复用,本质上都属于同步I/O。因为三者只是负责通知应用程序什么时候数据准备好了,实际的I
阅读全文
摘要:不管Java,C++都有进程、线程相关的内容。在这里统一整理吧。 Python的线程,其实是伪线程,不能真正的并发。下面也有讲。 线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈)。 多个线程共享内存。 参考了这篇文章:http://www.cnblogs
阅读全文
摘要:昨天看了这篇文章 《关于Unix哲学》 首先用了两个例子,用风扇吹出空肥皂盒 和 太空铅笔,来说明简单设计也能派上作用吧。 Unix哲学,Wikipedia上列出了好几个版本,不同的人有不同的总结。发明管道命令的Doug McIlroy总结了三条,而Eric S. Raymond则在The Art
阅读全文
摘要:有空的时候补充,可以参考 http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html
阅读全文
摘要:参考了这篇文章 http://www.ruanyifeng.com/blog/2016/12/user_space_vs_kernel_space.html 简单说,Kernel space 是 Linux 内核的运行空间,User space 是用户程序的运行空间。 为了安全,它们是隔离的,即使用
阅读全文
摘要:1. the most difficult bug u fixed and how u solved this problem.. 解决过很多疑难bug。最困难的分为两类。一类是并发、多线程类的,因为bug的出现依赖于一定的时序,难以复现;看到的是被破坏的现场。线程安全类问题很多发。 另一类是对外部
阅读全文
摘要:在读 /Users/baidu/Documents/Data/Interview/服务器-检索端/《Linux高性能服务器编程.pdf》 其实之前读过,要面试了,需要温习。 P260 Socket编程接口提供了一个创建全双工管道的系统调用:socketpair。squid服务器程序(见第4章)就是利
阅读全文
摘要:看到这篇文章,学习一下:http://www.ciaoshen.com/2016/10/28/aop/ 想理清一下从“动态代理”,到 “注释”,到“面向切面编程”这么一个技术演进的脉络。 只想讲清楚两个问题: 提到另一篇文章:https://my.oschina.net/huangyong/blog
阅读全文
摘要:参考这篇文章: http://www.ibm.com/developerworks/cn/linux/l-cn-edntwk/ 这里面使用的是 libev ,不是libevent Nodejs就是采用libev作为底层库。 先要进行安装,找到了这篇文章: http://www.cnblogs.com
阅读全文
摘要:参考了这篇文章: http://www.cnblogs.com/Lifehacker/p/whats_the_difference_between_libevent_and_libev_chinese.html 两个库都是为异步io调度而设计,在Linux上都是使用epoll机制,在FreeBSD上
阅读全文

浙公网安备 33010602011771号