发布时间:2013-06-29 12:33:53
对于本地进程间通信,普通管道提供了相关进程(都有想相同的祖先)之间通信的一种方法,但是普通管道存在两种局限性。首先它只能在相关进程间使用,其次它是半双工的,即使一些系统提供全双工的管道但为了可移植性,我们不应作此假设。命名管道解决了第一个局限性,他能在不相关的进程之间进行数据通信,但是同样具有第二.........【阅读全文】
发布时间:2013-06-22 10:10:24
历史上管道时半双工的,即数据同一时刻只能在一个方向上流动。现在一些系统提供全双工的管道。但是为了可移植性,我们不应该假定系统提供了此特性。所以通常仍旧是使用半双工的管道。pipe函数用来创建一个管道#include<unistd.h>int pipe(int filedes[2]); 成功返回0,出错返回-1经由参数filedes返回两个文件描述符.........【阅读全文】
发布时间:2013-06-16 10:08:26
设想一个情景一个服务器在等待任意客户的到来,并接受客服传来的数据,然后对数据处理后再返还给客户。然后客户离开。服务器继续等待。但是如果某一时刻服务器响应了一个客户A的服务请求,但是由于一些原因,该客户A确不能立刻将数据传递给服务器。于是导致服务器阻塞在等待该客户的A数据到来。如果这个时候另一个客户B .........【阅读全文】
发布时间:2013-06-13 09:37:50
私有数据的目的是希望每个线程可以独立的访问数据副本。而不需要担心与其他线程的同步访问问题。比如全局变量 errno他是基本进程的。因为进程创建的时候,子进程会复制父进程的数据空间,那么子进程就拥有自己的全局变量errno。即使存在多个进程间的频繁的切换,也不会造成error的访问错误,因为他们都有自己的errno全局变.........【阅读全文】
发布时间:2013-06-08 17:27:03
然后再来说说不在Pthread_attr_t结构中的线程属性:线程的可取消状态和可取消类型这两个属性。这两个属性影响这线程在响应pthread_cancel函数调用时所呈现的行为可取消状态属性有两种:PTHREAD_CANCEL_ENABLE(线程默认取消状态) 和PTHREAD_CANCEL_DISABLEint pthread_setcancelstate(int state,int *oldstat.........【阅读全文】