Chinaunix首页 | 论坛 | 博客
  • 博客访问: 93770
  • 博文数量: 15
  • 博客积分: 416
  • 博客等级: 一等列兵
  • 技术积分: 169
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-15 15:03
文章分类

全部博文(15)

文章存档

2012年(12)

2006年(3)

我的朋友

分类: Python/Ruby

2012-07-21 16:32:11

守护进程是可以一直运行而不阻塞主程序退出。要标志一个守护进程,可以将Process实例的daemon属性设置为True。代码如下:
import os
import time
import random
import sys
from multiprocessing import Process,current_process

def  daemon():
        p = current_process()
        print "starting ID%d prccess%s\n" % (p.pid,p.name)
        sys.stdout.flush()

        time.sleep(3)
        print  "Exiting:%s\n" % p.name
        sys.stdout.flush()
def main():
        p = Process(name="Daemon",target=daemon)
        p.daemon=True
        p.start()
if __name__=="__main__":
        main()
        time.sleep(1)

由于主进程会在1秒后退出,守护进程的 print  "Exiting:%s\n" % p.name这句是看不到的。
若想看到守护进程的 print  "Exiting:%s\n" % p.name语句输出,可以利用join,主进程等待守护进程的退出后再退出,即在,p.start()后添加p.join()然后把time。sleep(1)删除
阅读(1986) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~