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('进程结束')

 

posted @ 2019-11-05 16:55  不休不止  阅读(296)  评论(0编辑  收藏  举报