摘要: 就像每个进程有一个进程ID一样,每个线程也有一个线程ID。进程ID在整个系统中是唯一的,但线程ID不同,线程ID只在它所属的进程环境中有效。 进程ID,用pid_t数据类型来表示,是一个非负整数。线程ID则用pthread_t数据类型来表示,实现的时候可以用一个结构来代表pthread_t数据类型,所以可移植的操作系统实现不能把它作为整数处理。因此必须使用函数来对两个线程ID进行比较。 ... 阅读全文
posted @ 2014-01-13 22:12 ITtecman 阅读(1896) 评论(0) 推荐(0) 编辑
摘要: 典型的UNIX进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程(或简称为线程)以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各自独立的任务。这种方法有很多好处: 通过为每种事件类型的处理分配单独的线程,能够简化处理异步事件的代码。每个线程在进行事件处理时可以采用同步编程模式,同步编程模式要比异步编程模式简单得多。 多个进程必须... 阅读全文
posted @ 2014-01-13 21:58 ITtecman 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 依赖于实现的信号的其他特征。 1、信号名字 某些系统提供数组 extern char *sys_siglist[]; 数组下标是信号编号,给出一个指向信号字符串名字的指针。 这些系统通常也提供函数psignal。 #include void psignal(int signo, const char * msg);字符串msg(通常是程序名)输出到标准出错文件,后接一个冒号和一个... 阅读全文
posted @ 2014-01-13 15:13 ITtecman 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 在表10-1(http://www.cnblogs.com/nufangrensheng/p/3514157.html)所示的信号中,POSIX.1认为有6个与作业控制有关: SIGCHLD 子进程已停止或终止。 SIGCONT 如果进程已停止,则使其继续运行。 SIGSTOP 停止信号(不能被捕捉或忽略)。 SIGTSTP 交互式停止信号。 SIGTT... 阅读全文
posted @ 2014-01-13 14:44 ITtecman 阅读(917) 评论(0) 推荐(0) 编辑
摘要: #include unsigned int sleep(unsigned int seconds);返回值:0或未休眠够的秒数此函数使调用进程被挂起,直到满足以下条件之一:(1)已经过了seconds所指定的墙上时钟时间。(2)调用进程捕捉到一个信号并从信号处理程序返回。如果alarm信号一样,由于其他系统活动,实际返回时间比所要求的会迟一些。在第(1)种情形中,返回值是0。当由于捕捉到某个... 阅读全文
posted @ 2014-01-13 14:14 ITtecman 阅读(1357) 评论(0) 推荐(0) 编辑
摘要: 在http://www.cnblogs.com/nufangrensheng/p/3512291.html中已经有了一个system函数的实现,但是该版本并不执行任何信号处理。POSIX.1要求system忽略SIGINT和SIGQUIT,阻塞SIGCHLD。 实例 程序清单10-19使用http://www.cnblogs.com/nufangrensheng/p/3512291.html中... 阅读全文
posted @ 2014-01-13 11:22 ITtecman 阅读(1060) 评论(0) 推荐(0) 编辑