基础知识默认情况下,线程被创建成可结合的。为了避免存储器泄漏,每个可结合线程都应该被显示回收,即调用pthread_join,或通过调用pthread_detach函数被分离。1)如果一个可结合线程运行结束但没有被join,则它的状态类似与僵尸进程。2)若调用pthread_join后,该线程还没有..
分类:
编程语言 时间:
2016-04-20 18:18:42
阅读次数:
324
僵尸进程:在子进程未退出的情况下,父进程退出,子进程被init进程接管,但是子进程将不会正常退出,退出后也不会被收回该进程的资源,所以这种情况应该被避免,否则数量多了以后系统资源将被消耗完.为了避免这种情况可以是用vfork函数进行子进程的派生,或者在父进程中使用一下函数来等待子进程的退出: 头文件 ...
分类:
系统相关 时间:
2016-04-17 13:10:18
阅读次数:
166
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。 2、基本概念 我 ...
分类:
系统相关 时间:
2016-04-13 18:43:43
阅读次数:
366
stat 中的参数意义如下: D 不可中断 Uninterruptible(usually IO) R 正在运行,或在队列中的进程 S 处于休眠状态 T 停止或被追踪 Z 僵尸进程 W 进入内存交换(从内核2.6开始无效) X 死掉的进程 < 高优先级 n 低优先级 s 包含子进程 + 位于后台的进 ...
分类:
其他好文 时间:
2016-04-06 12:59:30
阅读次数:
167
僵尸进程概念 僵尸进程(Zombie process)通俗来说指那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸. 书面形式一点:一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程。通过ps命令查看其带有defunct的标志。僵尸进... ...
分类:
系统相关 时间:
2016-04-01 00:55:30
阅读次数:
305
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进..
分类:
系统相关 时间:
2016-03-28 19:02:11
阅读次数:
228
12325 Zombie’s Treasure Chest Some brave warriors come to a lost village. They are very lucky and find a lot of treasures and a big treasure chest, bu ...
分类:
其他好文 时间:
2016-03-26 15:44:46
阅读次数:
224
1. 基本概念: 孤儿进程:父进程退出,但是其子进程仍然在运行,那么这些子进程被称为孤儿进程;孤儿进程会被init进程收养,并作善后处理; 僵尸进程:一个已经终止,但是其父进程尚未对齐进行善后处理的进程被称为僵尸进程;ps命令状态为Z的进程; 善后处理:内核为每个终止子进程保存了一定量的信息,这些信
分类:
系统相关 时间:
2016-03-23 06:06:50
阅读次数:
245
以下程序,创建了一个子进程,且父进程等待子进程的退出而退出: 运行结果: 需要注意的是:假如上面程序中子进程退出了,但是父进程在wait()之前,子进程在进程表中的信息还是存在的,可在wait()前面暂停,用#ps -al命令查看,结果如下: 此时,假如kill了父进程,那么子进程就变成了“僵尸进程
分类:
系统相关 时间:
2016-03-15 18:36:44
阅读次数:
166
服务器端避免僵尸进程的方法: 1)通过忽略SIGCHLD信号,解决僵尸进程 signal(SIGCHLD, SIG_IGN) 2)通过wait方法,解决僵尸进程 signal(SIGCHLD, handle_sigchld); wait(NULL) 3)通过waitpid方法,解决僵尸进程 sign
分类:
系统相关 时间:
2016-03-07 20:46:30
阅读次数:
244