25、进程创建(2种)

from multiprocessing import Process
import os

def run(num):
  print os.getpid(),os.getppid()
  print num
process = Process(target=run, args=(100,), kwargs={})

process.start()
process.join()

2、通过继承Process类来创建进程类,在有类来创建实例进程对象

from multiprocessing import Process

from os import getpid

class SubProcess(Process):
  def __init__(self, num):
    super(SubProcess, self).__init__()
    self.num = num

  def run(self):
    print ‘zijincheng‘, getpid()
    self.work()

  def work(self):
    print ‘haha‘

process_object = SubProcess(100)

process_object.start()
process_object.join()

3、

import os
import time

from multiprocessing import Process

def sub_process_fun(num, a):

  print os.getpid(),‘####‘,  5679 os.getppid(),‘---‘5678

for i in range(4):
  pass

print os.getpid(),‘*****‘     5678

  # process_obj = Process(target=sub_process_fun, args=(100,), kwargs={"a": 10}, name="itcast")
process_obj = Process(target=sub_process_fun, args=(100,), kwargs={"a": 10})

process_obj.start()

print process_obj.name
print process_obj.pid,‘**********‘   5679     查看子进程pid
print process_obj.is_alive()

process_obj.join()

process_obj.terminate()    停止了子进程,但是没有进行资源回收,所以下一行is_alive 返回值是true
print("父进程:子进程的状态 %s" % process_obj.is_alive())
print("父进程: 回收子进程的资源")

时间: 2024-09-30 21:11:11

25、进程创建(2种)的相关文章

AIR打开创建进程的两种方式

写在这里,方便查阅 NativeApplication.nativeApplication.autoExit = true;// 主窗体关闭也跟着关闭 Debug.trace('ToursLocalConnection :: appExePath = ' + appExePath);currFile = new File(appExePath);//currFile = new File("C:/Users/lenovo/Desktop/LZPC_Test/LZPC/uninstall.exe&

multiprocessing多进程(31-04)创建进程的两种方式

一个进程可以寄生多个线程. CPU核数与进程个数是统一的, 若进程多于核数,那么只有等待上一进程执行完才能被执行. ------------------第一种进程创建方式------------------------ from multiprocessing import Processimport time def A(name): time.sleep(1) print('haello', name, time.ctime()) if __name__ == "__main__"

模拟操作系统中进程的三种基础状态与内存的分配和回收(最佳适配算法)

利用键盘模拟进程的三种操作状态,并且使用C++中的list模板模拟内存的分配和回收. 能够模拟进程的创建与撤销过程 l可对进程的状态进行全面的控制 按先进先出方式管理就绪和阻塞队列,能够按队列形式输出进程状 用PCB代表进程,用全局变量表示进程的个数. 1 #include <iostream> 2 #include <list> 3 #include <numeric> 4 #include <algorithm> 5 #include<stdlib

Win32进程创建、进程快照、进程终止用例

进程创建: 1 #include <windows.h> 2 #include <stdio.h> 3 4 int main() 5 { 6 // 创建打开系统自带记事本进程 7 STARTUPINFO si1 = {sizeof(si1)}; 8 PROCESS_INFORMATION pi1; 9 char * szCmdLine1 = "notepad"; 10 if(::CreateProcess(NULL, szCmdLine1, NULL, NULL

二十二、Linux 进程与信号---进程创建(续)

22.2 父子进程操作文件 文件操作由两种模式: IO 系统调用操作文件 标准C IO 操作文件 看代码: 1 #include <unistd.h> 2 #include <string.h> 3 #include <fcntl.h> 4 #include <stdio.h> 5 #include <stdlib.h> 6 7 int g_val = 30;//全局变量,存放在数据段 8 9 int main(void) 10 { 11 int

进程创建

这篇是网易云课堂<Linux内核分析>这门课的作业 Linux提供了三个系统调用创建进程,v_fork, fork和clone.fork是将父进程的所有资源都复制给了子进程,所以不带参数.而clone是将指定资源复制给子进程,所以带参数.不论哪种方式最终都要调用do_fork. long do_fork(unsigned long clone_flags, unsigned long stack_start, unsigned long stack_size, int __user *pare

Linux-进程描述(4)之进程优先级与进程创建执行

进程优先级 进程cpu资源分配就是指进程的优先权(priority).优先权高的进程有优先执行权利. 权限与优先级.权限(privilege)是指在多用户计算机系统的管理中,某个特定的用户具有特定的系统资源使用权力,像是文件夹,特定系统指令的使用或存储量的限制.权限是有或没有的问题,而优先级则是在已经具有了权限而讨论权限大小的问题.配置进程优先权对多任务环境的linux很有用,可以改善系统性能.还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能.

进程创建与销毁

Unix操作系统紧紧依赖进程创建来满足用户需求 创建进程 Unix创建进程的三种机制 1.写时复制技术运行父子进程读相同的物理页.只要两者中有一个试图写一个物理页,内核就把这个页的内容拷贝到    一个新的物理页,并把这个新的物理页分配给正在写的进程. 2.轻量级进程允许父子进程共享每个进程在内核的很多数据结构,如页表(整个用户态的地址空间).打开文件表及信    号处理. 3.vfork()系统调用创建的进程能共享其父进程的内存地址空间.为了防止父进程重写子进程需要的数据,阻塞父进    程的

python的multiprocessing模块进程创建、资源回收-Process,Pool

python的multiprocessing有两种创建进程的方式,每种创建方式和进程资源的回收都不太相同,下面分别针对Process,Pool及系统自带的fork三种进程分析. 1.方式一:fork() 举例: 1 import os 2 pid = os.fork() # 创建一个子进程 3 os.wait() # 等待子进程结束释放资源 4 pid为0的代表子进程. 缺点:1.兼容性差,只能在类linux系统下使用,windows系统不可使用:2.扩展性差,当需要多条进程的时候,进程管理变得

linux之Deamon进程创建及其进程exit,_exit,return之间的区别

Dameon进程又被称做守护进程,一般来说他有以下2个特点: 1.生命周期非常长,一旦启动,一般不会终止,直到系统推出,不过dameon进程可以通过stop或者发送信号将其杀死 2.在后台执行,不跟任何控制终端关联,终端信号比如:SIGINT,SIGQUIT,SIGTSTP,以及关闭终端都不会影响deamon 如何编写Daemon进程,需要遵循以下规则: (1)执行fork()函数,父进程退出,子进程继续 执行这一步,原因有二: ·父进程有可能是进程组的组长(在命令行启动的情况下),从而不能够执