一.linux的命名管道
server端接收客户端请求只有一个管道server_fifo,当有多个客户的请求同时到达时,客户的数据排队等候,服务器不断重复处理客户端的请求。
即,管道可以处理客户端同时的多个请求。
二.进程与线程的区别
1.进程拥有独立的内存单元,而多个线程共享内存,
2.粒度不同,一个进程:运行着一个或多个线程的地址空间和这些线程所需要的系统资源
3.线程的划分尺度小于进程,使得多线程程序的并发性高。
4.进程可以创建其子进程,子进程与父进程拥有不同的可执行代码和数据内存空间。而在用于代表应用程序的进程中多个线程共享数据内存空间,但保持每个线程拥有独立的执行堆栈和程序执行上下文
三.linux中的read系统调用到底是阻塞的还是非阻塞的
read函数只是一个通用的读文件设备的接口。是否阻塞需要由设备的属性和设定所决定。一般来说,读字符终端、网络的socket描述字,管道文件等,这些文件的缺省read都是阻塞的方式。如果是读磁盘上的文件,一般不会是阻塞方式的。但使用锁和fcntl设置取消文件O_NOBLOCK状态,也会产生阻塞的read效果。