位置: 编程技术 - 正文
推荐整理分享python使用fork实现守护进程的方法(python for key in),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:fork实现,python怎么用for,python for key in,python for语句怎么用,fork python,python for key in,fork实现,fork实现,内容如对您有帮助,希望把文章链接给更多的朋友!
os模块中的fork方法可以创建一个子进程。相当于克隆了父进程
os.fork()
子进程运行时,os.fork方法会返回0;
而父进程运行时,os.fork方法会返回子进程的PID号。
所以可以使用PID来区分两个进程:
运行代码,查看进程:
可以看出第二条python进程就是第一条的子进程。
如刚刚所说os.fork()方法区分子进程和父进程
面代码中,在子进程创建前,声明了一个变量source,然后在子进程中减1,最后打印出source的值,显然父进程打印出来的值应该为,子进程打印出来的值应该为9。
简单守护进程例子:
带控制参数的例子:
编写守护进程的基类,用于继承:
编写自己的类:
关于两次fork
第二个fork不是必须的,只是为了防止进程打开控制终端。
打开一个控制终端的条件是该进程必须是session leader。第一次fork,setsid之后,子进程成为session leader,进程可以打开终端;第二次fork产生的进程,不再是session leader,进程则无法打开终端。
也就是说,只要程序实现得好,控制程序不主动打开终端,无第二次fork亦可。
代码实现
使用测试
高质量Python代码编写的5个优化技巧 如今我使用Python已经很长时间了,但当我回顾之前写的一些代码时,有时候会感到很沮丧。例如,最早使用Python时,我写了一个名为Sudoku的游戏(GitHub
Python编程使用NLTK进行自然语言处理详解 自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。自然语言工具箱(NLTK,NaturalLanguageToolkit)是一个基于Python语言的类库,它也是当前
python内置函数:lambda、map、filter简单介绍 lambdalambda可以理解为一种小函数,但是它是一个表达式,而不是一个语句,所以在def不允许出现的地方仍然可以使用lambda函数,例如list里。但是lambda内
友情链接: 武汉网站建设