python进程--传参,for循环创建,join方法

  OK上一篇我们简单学了一下    进程    的创建方式,那么这一篇,我们把其他一些边角料..不对,不是边角料..........也是很重要的一些小知识点

也是经常用的。

  话不多说直接进入主题

传参:

from    multiprocessing     import     Process     这一步大家还记得吧,对喽,不管进程写那些东西,我们第一步先写这个,导入Pocess

先来个函数的哈!   这是第一种,这一种里面有两种传参对象
 def   f1(n):
   print(n)

if __name__ == ‘__main__‘:
   p1 = Process(target=f1,args=("鸡蛋灌饼")        #   先来个字符串的

   p1.start()
   p1 = Process(target=f1,kwargs={‘n‘:‘大力‘})      #  再来个字典的.
   p1.start()

这是第一只种,   这是一个进程哈,都是p1,可不是两个进程,大家别搞混啦哈,只是为了演示两种传参对象,好了说第二种传参的方式,

再来个类的:

class MyProcess(Process):

  def __init__(self,name):
  super().__init__() #别忘了执行父类的init
  self.name = name

  def run(self):
  print(‘宝宝and%s不可告人的事情‘%self.n)

if __name__ == ‘__main__‘:

  p1 = MyProcess("炸鸡")           #对,上一篇见过,就是个这样的.就这
  p1.start()

传参就是这两种了,很简单,大家好好记一下,多敲几遍

接下来就是for 循环创建了,因为我们工作,平时用都不可能说就创建一个两个 的进程,

所以用for循环能快速创建多个进程

from multiprocessing import Process

  def   f1(i):
    print(i)
  def   f2(i)
    print

if __name__ == ‘__main__‘:

  for  i   in   range(20):               在这块加个for循环, rang是范围,   ()里面写创建的个数  20个   剩下两步都没变,
  p1 = Process(target=f1,args=(i,))
  p1.start()

以上就是 for 循环创建进程了   创建完,我们就有20个进程了   大家可能觉得很抽象,20个进程在哪呢,我咋就没看呢,

创建 20个进程都是在底层内存里面,创建好的, 这里理解不了没关系,往后慢慢了解就知道了

接下来是join方法

join在字符串里面是拼接的意思,在这里是是阻断的意思

from   multiprocessing   import   Process

  def    f1():
    print(‘啤酒‘)

  def   f2():
    print(‘可乐‘)

if __name__ == ‘__main__‘:

  p1 = Process(target=f1,)
  p1.start()
  p1.join()                              #    这一步呢就是主进程等待子进程运行完才继续执行,首先我们要知道在运行进程的时候,

主进程的代码运行速度是非常快的,会比子进程还要快的,如果不阻塞的话,可能子进程的功能还没实现,就先把主进程的代码

                打印出来了,所以这时候就需要join阻隔了,让子进程先执行.   对,就是这样

  p2 = Process(target=f2,)         #这是第二个进程       join写在哪个进程下面,就先执行哪个
  p2.start()
  p2.join()
  print(‘我要等了...等我的子进程...‘)       这一步就是传说中的主进程 代码
  print(‘我是主进程!!!‘)                            这一句也是

OK  ,大家花点时间把上面这三方法,理解一下,记一下.

原文地址:https://www.cnblogs.com/python-lyy/p/10263492.html

时间: 2024-10-13 17:29:40

python进程--传参,for循环创建,join方法的相关文章

python函数传参是传值还是传引用?

首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传递. 值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本.值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值. 引用传递(pass-

python 脚本传参  

import sys sys.argv[0] 代表脚本本身 sys.argv[1] 代表第一个参数 sys.argv[2] 代表第二个参数 例如: import sys print "传参数" ,sys.argv[0],sys.argv[1] python 脚本传参

Python脚本传参和Python中调用mysqldump

Python脚本传参和Python中调用mysqldump<pre name="code" class="python">#coding=utf-8 import MySQLdb import sys import os # 李红颖编写,用户湖南CLV数据分割使用 print 'dump database:',sys.argv[1] ##传入的第一个参数,数据库名称 print 'dump table:',sys.argv[2] ##传入的第二个参数,表

python(动态传参、命名空间、函数嵌套、global和nonlocal关键字)

一.函数的动态传参 1.*args位置参数动态传参 def chi(*food): print(food) chi("烧烤","火锅","虾吃虾涮","烤鱼") 多个位置参数传递进去,收到的内容是元组tuple,动态参数的位置必须要在位置参数后面 2**kwargs 关键字参数动态传参 def chi(**food): print(food) chi(zhangqing="吃点好的",lianda=&quo

python 动态传参,名称空间和作用域,函数的嵌套,global和nonlocal

一.动态传参 1.位置参数动态传参 def func(*args):    *表示动态传参 * 在这里表示接受位置参数的动态传参,接收到的是元组. def fun(*args): print(args) fun('aaa',3,5,6,'ccc') # 结果('aaa', 3, 5, 6, 'ccc') 2.关键字的动态传参 def func(**kwargs): 函数体(代码块) func(n=7,m="aa"): **表示接收关键字参数的动态传参,接收到的是字典. def fun(

python全栈脱产第34天------开启进程的两种方式、join方法、进程对象其他相关的属性和方法、僵尸进程、孤儿进程、守护进程、互斥锁

一.开启进程的两种方式 方式一: from multiprocessing import Processimport time def task(name): print('%s is running' %name) time.sleep(3) print('%s is done' %name) # 在windows系统上,开启子进程的操作必须放到if __name__ == '__main__'的子代码中if __name__ == '__main__': p=Process(target=t

python 函数传参练习 全局变量与局部变量 的理解

额 还是继续抄一边NLP第二条: 2.一个人不能控制另外一个人   一个人不能改变另外一个人,一个人只能改变自己. 每个人的信念,价值观,规条系统只对本人有效,不应强求别人接守. 改变自己,别人才会有可能改变. 一个人不能推动另外一个人,每个人都只可以自己推动自己. 找出对方的价值观,创造,增大或转移对方在乎的价值,对方便会产生推动自己的行为. 一个人因此不能“教导”另外一个人,一个人只能引导另外一个人取学习. 因此一个人不能希望另外一个人放弃自己的一套信念,价值观和规条系统,而去接受另外的一套

python函数 传参的多种方式 解读

1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: 2.带参数的函数调用: 函数定义了参数,那么调用函数的时候就需要传入参数 上面的案列中,我们定义函数的时候在函数名后面的括号里定义的参数叫做形参. 而我们调用函数的时候传入的参数叫做实参,形参是用来接收实参的. 参数的分类 上面我们说了形参和实参,那么形参和实参在在定义和调用的时候,根据形式不同有可以分为几类. 1.根据实参进行分类 实参:位

Python实例--C#执行Python脚本,传参

# -*- coding: utf-8 -*- # 第一行的目的,是为了让代码里面,可以有中文注释信息. (否则要运行报错) # 这个 Python 脚本, 用于被 C# 来调用. # 简单测试 Hello World 的效果. def welcome(name): return "hello " + name # 测试 参数为 C# 对象的效果. (获取/设置 C# 对象的属性) def testAddAge(obj): obj.Age = obj.Age + 1 obj.Desc