2 michael2008bj michael2008bj 于 2016.03.24 11:34 提问

python在自定义的函数中不停创建进程

windows下,用python写了一个多进程的代码,遇到问题

from multiprocessing import Process
def count():
    num = 100000
    while num>0:
        num -= 1
    print "done"

def creat():
    p = Process(target=count)
    p.start()
    p.join()

if __name__ == '__main__':
  creat()

运行后进入任务管理器,发现创建了很多很多python进程,不一会儿就把内存占满了
而改为下面的代码后就没有问题了,请问这是什么原因呀?

if __name__ == '__main__':
    p = Process(target=count)
    p.start()
    p.join()

1个回答

adogwtf
adogwtf   2016.03.31 15:54

在linux下windows下都试过了,都没有出现你说的那种情况。 你用的是什么版本的python?

michael2008bj
michael2008bj 之前2.7.3,现在升到2.7.11后不能复现了,谢谢关注!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Python创建进程1-Process方法实现
Python生成进程 利用Process模块来生成进程   #!/usr/bin/env python #_*_ coding:utf-8 _*_ from multiprocessing import Process import time def f(x,n):     print x     print n     time.sleep(2) if __name__
Python中创建进程的两种方式以及进程池
在Python中创建进程有两种方式,第一种是: from multiprocessing import Process import time def test(): while True: print('---test---') time.sleep(1) if __name__ == '__main__': p=Process(target
Python自定义的多线程多进程类
最近经常使用到对大量文件进行操作的程序以前每次写的时候都要在函数中再写一个多线程多进程的函数,做了些重复的工作遇到新的任务时还要重写,因此将多线程与多进程的一些简单功能写成一个类,方便使用。功能简单只为以后方便使用。 使用中发现bug会再进行更新     #!/usr/bin/env python # -*- coding: utf-8 -*-
WIN32API函数CreateProcess创建一个新的进程和它的主线程,新进程运行指定的可执行文件
#include //CString的头文件 #include //屏蔽窗口 #pragma comment(linker,"/subsystem:windows /ENTRY:mainCRTStartup") BOOL Start(CString exepath,WORD wShowWindow) { if(exepath.IsEmpty()) { return false; }
Linux/macOS 为程序创建自定义进程名的进程 [以 python 为例]
在系统中可能会多次使用 python 运行 py 文件,或在终端直接运行 python 命令行,因此可能会创建多个 PID 不同,但进程名都为 python 的进程。而通过 ps 命令就会获取多个进程名为 python 的 PID,通过 kill 命令会杀死获取到的所有进程,这并不是期望的事情。《Linux/macOS 获取进程PID、杀死进程》  只想杀死某一个进程名为python的进程,
python创建子进程
Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。 若在windows下运行: pid = os.fork() 会提示:AttributeError: module 'os' has no attri
Linux创建进程的fork()函数
今天总结一下Linux的进程创建,以及需要的系统调用的fork函数,记录一下,作为一个心得吧。         在Linux中,fork函数的功能就是在一个进程中创建一个新的进程,当前调用fork函数的进程就是产生的新进程的父进程,新进程在一下也称为子进程。在新进程生成之后就会在系统中开始执行。
VC常用代码之创建进程
作者:朱金灿来源:http://blog.csdn.net/clever101            创建进程是编程开发的常用操作。Windows中的创建进程采用API函数CreateProcess实现。下面是一个使用例子:#include #include int _tmain(int argc, _TCHAR* argv[]) { STARTUPINFO si; PROCESS_I
Python中进程创建的两种方式
博客核心内容:1、Python中进程创建的两种方式
Linux下创建进程的三种方式及特点
在Linux中主要提供了fork、vfork、clone三个进程创建方法。  在linux源码中这三个调用的执行过程是执行fork(),vfork(),clone()时,通过一个系统调用表映射到sys_fork(),sys_vfork(),sys_clone(),再在这三个函数中去调用do_fork()去做具体的创建进程工作。  fork      fork创建一个进程时,子进程只是完全