Python创建进程、线程的两种方式

代码创建进程和线程的两种方式

"""

定心丸:Python创建进程和线程的方式基本都是一致的,包括其中的调用方法等,学会一个

另一个自然也就会了。

"""

很多人学习python,不知道从何学起。

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:101677771

1.创建进程的两种方式

方式一

importos

importtime

frommultiprocessingimportProcess

# 实例化一个multiprocessing.Process的对象,并传入一个初始化函数对象

deftask(name):

print(f'进程 的PID为,父进程ID为 ')

time.sleep(2)

print(f'进程 的PID为 运行结束')

if__name__ =='__main__':

# 此处要注意,windows下开启进程一定要在main方法下开启

process1 = Process(target=task, args=('1',))

process2 = Process(target=task, args=('2',))

# 启动进程

process1.start()# 告诉操作系统帮你创建一个进程

process2.start()

print(f'主进程 ')

方式二

importos

importtime

frommultiprocessingimportProcess

# 继承类的方式去创建

classMyProcess(Process):

def__init__(self, name):

# 继承Process中的__init__()

super(MyProcess, self).__init__()

self.name = name

# 此处必要在该类中创建run方法 重写run方法

defrun(self):

print(f'进程 的PID为,父进程ID为 ')

time.sleep(2)

print(f'进程 的PID为 运行结束')

if__name__ =='__main__':

# 创建两个进程

process1 = MyProcess('1')

process2 = MyProcess('2')

# 开启这两个进程

process1.start()

process2.start()

print(f'主进程 ')

运行结果如下:

"""

主进程 2776

进程 1 的PID为9364,父进程ID为 2776

进程 2 的PID为4140,父进程ID为 2776

进程 1 的PID为9364 运行结束进程 2 的PID为4140 运行结束

"""

2.创建线程的两种方式

方式一

importtime

fromthreadingimportThread

# 实例化一个multiprocessing.Process的对象,并传入一个初始化函数对象

deftask(name):

print(f"线程 is running")

time.sleep(2)

print(f"线程 is over")

if__name__ =='__main__':

# 开启线程不需要在main下面执行代码,直接书写就可以

# 但是还是习惯性的将启动命令写在main下面

# 创建两个线程

thead1 = Thread(target=task, args=('1',))

thead2 = Thread(target=task, args=('2',))

# 开启两个线程

thead1.start()# 创建线程的开销非常小,几乎代码一执行线程就创建了

thead2.start()

print("主")

方式二

importtime

fromthreadingimportThread

# 继承类的方式去创建

classMyThead(Thread):

def__init__(self, name):

# 继承Process中的__init__()

super(MyThead, self).__init__()

self.name = name

# 此处必要在该类中创建run方法 重写run方法

defrun(self):

print(f"线程 is running")

time.sleep(2)

print(f"线程 is over")

if__name__ =='__main__':

# 创建两个线程

thead1 = MyThead('1')

thead2 = MyThead('1')

# 开启这两个线程

thead1.start()

thead2.start()

print('主')

输出结果为如下:

"""

线程 1 is running

线程 2 is running

线程 1 is over线程 2 is over

"""

上方只是简单的创建进程和线程,以上注释只是个人理解,不足的地方还望见谅,欢迎补充

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200810A0CXVQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券