惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
爱范儿
爱范儿
V
Visual Studio Blog
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 三生石上(FineUI控件)
博客园 - Franky
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
罗磊的独立博客
L
LangChain Blog
Jina AI
Jina AI
IT之家
IT之家
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页

老董笔记

尚硅谷机构在哪?尚硅谷培训怎么样?靠谱吗-互联网IT百科 韩顺平介绍,传智讲师,开办泰牛,入尚硅谷等一系列-互联网IT百科 pandas多重索引标准样式(写入excel有空行)-互联网IT百科 cannot join with no overlapping index names-互联网IT百科 pandas多列变多行(即宽表变长表)melt和stack函数-互联网IT百科 pandas多行转多列(长表变宽表)pivot和unstack-互联网IT百科 Index contains duplicate entries, cannot reshape完美解决-互联网IT百科 single positional indexer is out-of-bounds-互联网IT百科 Can only compare identically-labeled Series objects-互联网IT百科 pandas transform用法详解(多个案例)-互联网IT百科 python四舍五入精确实现-互联网IT百科 pandas的groupby使用apply分组排序-互联网IT百科 index 0 is out of bounds for axis 0 with size 0-互联网IT百科 pandas分组过滤filter函数-互联网IT百科 联想Win10系统如何禁用触摸屏关闭触摸-互联网IT百科 groupby分组计算transform转换返回相同长度序列-互联网IT百科 brooks seo教程python教程,brooks seo教程网盘,布鲁seo资源-互联网IT百科 电脑右键文件夹一直转圈电卡死怎么回事-互联网IT百科 施琪嘉的心理成长课(荐)-互联网IT百科 百度SEO公司_SEO推广公司哪家好_SEO外包服务如何选-老董笔记 groupby后agg同1列用多个聚合函数、不同列用不同函数、自定义函数-互联网IT百科 pandas的groupby单列多列分组聚合运算-互联网IT百科 DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解-互联网IT百科 pandas中groupby之Grouper and axis must be same length-互联网IT百科 pandas中groupby的分组原理-互联网IT百科 pandas的groupby的使用详解大全-互联网IT百科 openpyxl单元格自动换行强制换行Alignment(wrapText=True)-互联网IT百科 python教程全套(可就业)-互联网IT百科 联想win10系统CPU显示100%,电脑呼呼响怎么回事-互联网IT百科 如何自制CPU,CPU原理是怎么样的?-互联网IT百科
通过Process子类创建进程-互联网IT百科
2019-06-06 · via 老董笔记

  在面向对象中我们知道一个类通过继承父类可以拥有父类的属性和方法,既然Process类负责创建进程,那么我们自定义一个类继承Process类是不是也就具备创建进程的能力呢?必然如此!但是有些事项需要注意:

  1)Process类本身也有__init__方法,定义一个子类相当于重写了这个方法,

  2)重写__init__方法就会带来一个问题,我们可能不会完全初始化一个Process类,因为Process类的构造方法中可能会做一些初始化的操作。

  3)最好的方法就是将子类本身加上Process.__init__方法或者super().__init__(),完成这些初始化操作。

  通过继承的方式创建进程可以使得程序写起来更加灵活多变!可以练习2个小试牛刀:

# ‐*‐ coding: utf‐8 ‐*‐

from multiprocessing import Process
import time
import os


# 继承Process类
class ProcessSon(Process):

    def __init__(self,interval):
        Process.__init__(self)
        self.interval = interval

    # 重写了Process类的run()方法
    def run(self):
        print("子进程(%s) 开始执行,父进程为(%s)" % (os.getpid(),os.getppid()))
        t_start = time.time()
        print("子进程要休眠{}秒".format(self.interval))
        time.sleep(self.interval)
        t_stop = time.time()
        print("子进程(%s)结束,耗时%d秒" % (os.getpid(),t_stop-t_start))


if __name__=="__main__":

    print("当前程序进程(%s)" % os.getpid())
    p1 = ProcessSon(2)
    # 一个不包含target属性的Process类执行start()方法,就会运行这个类中的run()方法.
    p1.start()
    p1.join()
    print("主进程(%s)执行结束" % os.getpid())

D:installpython3python.exe D:/pyscript/test/test2.py
当前程序进程(7736)
子进程(9564) 开始执行,父进程为(7736)
子进程要休眠2秒
子进程(9564)结束,耗时2秒
主进程(7736)执行结束

Process finished with exit code 0
# ‐*‐ coding: utf‐8 ‐*‐

import multiprocessing
import os


class MyProcess(multiprocessing.Process):

    def __init__(self, num):
        self.num = num
        super().__init__()

    def run(self):
        for i in range(self.num):
            print("(%s)子进程(父进程:(%s)):%d" %
                (os.getpid(), os.getppid(), i))


if __name__ == '__main__':

    # 下面是主程序(也就是主进程)
    for i in range(5):
        print("(%s)主进程: %d" % (os.getpid(), i))
        if i == 2:
            # 创建并启动第一个进程
            mp1 = MyProcess(3)
            mp1.start()
            mp1.join()
            # 创建并启动第一个进程
            mp2 = MyProcess(3)
            mp2.start()
            mp2.join()
    print('(%s)主进程执行完成!' % (os.getpid()))

D:installpython3python.exe D:/pyscript/test/test2.py
(10564)主进程: 0
(10564)主进程: 1
(10564)主进程: 2
(9460)子进程(父进程:(10564)):0
(9460)子进程(父进程:(10564)):1
(9460)子进程(父进程:(10564)):2
(10900)子进程(父进程:(10564)):0
(10900)子进程(父进程:(10564)):1
(10900)子进程(父进程:(10564)):2
(10564)主进程: 3
(10564)主进程: 4
(10564)主进程执行完成!

Process finished with exit code 0

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会