python_并发编程——多进程的第二种启动方式

1.多进程的第二种启动方式

import os
from multiprocessing import Process
# 创建一个自定义类,继承Process类
class MyProcess(Process):
    # 必须实现一个run方法,run方法中是子进程中执行的代码
    def run(self):
        print(‘子进程:‘,os.getpid())

if __name__ == ‘__main__‘:
    print(‘主进程‘,os.getpid())
    p1 = MyProcess()
    p1.start()
    p2 = MyProcess()
    p2.start()

结果:

 2.进程号和进程名

import os
from multiprocessing import Process

class MyProcess(Process):
    def run(self):
        print(‘子进程:‘,os.getpid())
        print(self.name)    #打印进程名
        print(self.pid)     #打印进程号,这里的进程号和os.getpid的进程号是一样的

if __name__ == ‘__main__‘:
    print(‘主进程‘,os.getpid())
    p1 = MyProcess()
    p1.start()
    p2 = MyProcess()
    p2.start()

结果:

 3.传递参数

from multiprocessing import Process

class MyProcess(Process):
    def __init__(self,arg1,arg2):   #使用构造方法接收传递进来的参数
        super().__init__()    #调用父类的__init__方法
        self.arg1 = arg1    #把传进的的参数绑给self
        self.arg2 = arg2

    def run(self):
        print(self.name)    #打印进程名
        print(self.pid)     #打印进程号,这里的进程号和os.getpid的进程号是一样的
        print(self.arg1)
        print(self.arg2)

if __name__ == ‘__main__‘:
    p1 = MyProcess(‘wdc‘,1)   #传递两个参数
    p1.start()
    p2 = MyProcess(‘yhf‘,2)   #传递两个参数
    p2.start()

结果:

原文地址:https://www.cnblogs.com/wangdianchao/p/12040638.html

时间: 2025-01-09 23:44:23

python_并发编程——多进程的第二种启动方式的相关文章

SpringBoot三种启动方式

SpringBoot第一种启动方式 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.

Python 3 并发编程多进程之队列(推荐使用)

Python 3 并发编程多进程之队列(推荐使用) 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的. 可以往队列里放任意类型的数据 创建队列的类(底层就是以管道和锁定的方式实现): 1 Queue([maxsize]):创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递. 参数介绍: 1 maxsize是队列中允许最大项数,省略则无大小限制. 方法介绍: 1.主要

《Java并发编程实战》第二章 线程安全性 读书笔记

一.什么是线程安全性 编写线程安全的代码 核心在于要对状态访问操作进行管理. 共享,可变的状态的访问 - 前者表示多个线程访问, 后者声明周期内发生改变. 线程安全性 核心概念是正确性.某个类的行为与其规范完全一致. 多个线程同时操作共享的变量,造成线程安全性问题. * 编写线程安全性代码的三种方法: 不在线程之间共享该状态变量 将状态变量修改为不可变的变量 在访问状态变量时使用同步 Java同步机制工具: synchronized volatile类型变量 显示锁(Explicit Lock

Python 3 并发编程多进程之进程同步(锁)

Python 3 并发编程多进程之进程同步(锁) 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,竞争带来的结果就是错乱,如何控制,就是加锁处理. 1.多个进程共享同一打印终端 from multiprocessing import Process import os,time def work(): print('%s is running' %os.getpid()) time.sleep(2) print('%s is done' %os.g

Android -- service两种启动方式startService与bindService

继上一篇文章,Android – Service的使用,我们来继续看看Service的两种启动方式 第一种startService . 运行代码,得知以下几点结论: 我们了解它的启动周期为onCreate->onStartCommand,如图 当退出应用后,后台的Service进程仍然存在,未被销毁 当点击多次startService时,如图我点击了3次,你会发现onCreate方法只创建了一次. stopService,如图 第二种bindService 运行代码得知以下结论: 点击bindS

Android Service的两种启动方式

参考链接 1. 概念 开始,先稍稍讲一点android中Service的概念和用途吧~ Service分为本地服务(LocalService)和远程服务(RemoteService): 1.本地服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC, 也不需要AIDL.相应bindService会方便很多.主进程被Kill后,服务便会终止. 2.远程服务为独立的进程,对应进程名格式为所在包名加上你指定的android:process字符

mysql的四种启动方式

mysql的四种启动方式: 1.mysqld 启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root 客户端连接: mysql --defaults-file=/etc/my.cnf or mysql -S /tmp/mysql.sock 2.mysqld_safe 启动mysql服务器:./mysqld_safe --defaults-file=/etc/my.cnf --user=root & 客户端连接: mysql --de

mysql的几种启动方式

mysql的四种启动方式: 1.mysqld 启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root 客户端连接: mysql --defaults-file=/etc/my.cnf or mysql -S /tmp/mysql.sock 2.mysqld_safe 启动mysql服务器:./mysqld_safe --defaults-file=/etc/my.cnf --user=root & 客户端连接: mysql --de

msyql四种启动方式

1 mysql默认启动配置文件my.cnf顺序 第一步:/etc/my.cnf 第二步:/etc/mysql/my.cnf 第三步:/usr/local/mysql/etc/my.cnf 第四步:~/.my.cnf 可以通过命令查看加载顺序: [[email protected] ~]# which mysqld /usr/local/mysql/bin/mysqld [[email protected] ~]# /usr/local/mysql/bin/mysqld --verbose --h