- 论坛徽章:
- 60
|
下面是一段示意代码 ttt.py:- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- import multiprocessing
- import time
- import os
- class test(multiprocessing.Process):
- def run(self):
- print 'sub process [ppid]: %d,[pid]: %d -- sleep 5 --' %(os.getppid(),os.getpid())
- time.sleep(5)
- print 'sub process [ppid]: %d,[pid]: %d -- done --' % (os.getppid(),os.getpid())
- b = 0
- while True:
- print '-- [pid]: %d main process starting --' %os.getpid()
- while b < 10 :
- p = test()
- p.start()
- b +=1
- print '-- [pid]: %d main process sleep 10 --' %os.getpid()
- time.sleep(100)
复制代码 运行后:- [root@localhost pytest]# python ttt.py
- -- [pid]: 23695 main process starting --
- sub process [ppid]: 23695,[pid]: 23696 -- sleep 5 --
- sub process [ppid]: 23695,[pid]: 23697 -- sleep 5 --
- sub process [ppid]: 23695,[pid]: 23698 -- sleep 5 --
- sub process [ppid]: 23695,[pid]: 23699 -- sleep 5 --
- sub process [ppid]: 23695,[pid]: 23700 -- sleep 5 --
- sub process [ppid]: 23695,[pid]: 23702 -- sleep 5 --
- sub process [ppid]: 23695,[pid]: 23701 -- sleep 5 --
- sub process [ppid]: 23695,[pid]: 23703 -- sleep 5 --
- sub process [ppid]: 23695,[pid]: 23704 -- sleep 5 --
- -- [pid]: 23695 main process sleep 10 --
- sub process [ppid]: 23695,[pid]: 23705 -- sleep 5 --
- sub process [ppid]: 23695,[pid]: 23697 -- done --
- sub process [ppid]: 23695,[pid]: 23696 -- done --
- sub process [ppid]: 23695,[pid]: 23698 -- done --
- sub process [ppid]: 23695,[pid]: 23699 -- done --
- sub process [ppid]: 23695,[pid]: 23700 -- done --
- sub process [ppid]: 23695,[pid]: 23701 -- done --
- sub process [ppid]: 23695,[pid]: 23704 -- done --
- sub process [ppid]: 23695,[pid]: 23703 -- done --
- sub process [ppid]: 23695,[pid]: 23702 -- done --
- sub process [ppid]: 23695,[pid]: 23705 -- done --
复制代码 产生了10个子进程,完成之后 ,我 ps -ef | grep python, 得到:- [root@localhost ~]# ps -ef | grep [p]ython
- root 23695 8791 0 00:19 pts/4 00:00:00 python ttt.py
- root 23696 23695 0 00:19 pts/4 00:00:00 [python] <defunct>
- root 23697 23695 0 00:19 pts/4 00:00:00 [python] <defunct>
- root 23698 23695 0 00:19 pts/4 00:00:00 [python] <defunct>
- root 23699 23695 0 00:19 pts/4 00:00:00 [python] <defunct>
- root 23700 23695 0 00:19 pts/4 00:00:00 [python] <defunct>
- root 23701 23695 0 00:19 pts/4 00:00:00 [python] <defunct>
- root 23702 23695 0 00:19 pts/4 00:00:00 [python] <defunct>
- root 23703 23695 0 00:19 pts/4 00:00:00 [python] <defunct>
- root 23704 23695 0 00:19 pts/4 00:00:00 [python] <defunct>
- root 23705 23695 0 00:19 pts/4 00:00:00 [python] <defunct>
- [root@localhost ~]#
复制代码 子进程都是僵尸进程,怎么会这样呢? 如何正确退出子进程? python 新手,求解答!
|
|