python进程与线程的操作
进程操作:
# project :Python_Script
# -*- coding = UTF-8 -*-
# Autohr :XingHeYang
# File :processTest.py
# time :2019/11/5 16:00
# Describe :进程操作
# ---------------------------------------
from multiprocessing import Process # 导包
import time
def run(process_name): #设计需要以进程执行的函数
i = 0
while i <= 5:
print('进程 %s 执行:------>'%process_name)
time.sleep(2)
i += 1
if __name__ == '__main__':
print('父进程开始')
#创建进程对象,target需要传入的是需要以进程执行的函数名。
# args需要以元组的形式传入执行函数的参数,如果只有一个参数也需要以元组的形式传入
p1 = Process(target=run, args=('第一个',))
p2 = Process(target=run, args=('第二个',))
p3 = Process(target=run, args=('第三个',))
#启动进程,并打印出进程id
p1.start()
print('p1进程id:',p1.pid)
p2.start()
print('p2进程id:',p2.pid)
p3.start()
print('p3进程id:',p3.pid)
#子进程等待父进程结束后结束
p1.join()
p2.join()
p3.join()
print('父进程结束')
线程操作:
# project :Python_Script
# -*- coding = UTF-8 -*-
# Autohr :XingHeYang
# File :Thread_Test.py
# time :2019/11/5 16:28
# Describe :python 线程操作
# ---------------------------------------
#Content:线程:在python中有两个模块(_thread(低级的线程模块:表示的越接近底层),
# threading(高级的线程模块),threading相当于对_thread又进行了一次封装)
from threading import Thread
import time
def run(process_name):
i = 0
while i <= 10:
print('线程 %s 执行:------>'%process_name)
time.sleep(2)
i += 1
if __name__ == '__main__':
print('进程开始')
#创建线程对象,传入的参数意义和进程相同
p1 = Thread(target=run, args=('第一个',))
p2 = Thread(target=run, args=('第二个',))
p3 = Thread(target=run, args=('第三个',))
#启动线程
p1.start()
p2.start()
p3.start()
#子线程等待父线程结束后结束
p1.join()
p2.join()
p3.join()
print('进程结束')
