python多进程之multiprocessing

什么是多进程?

简单的理解:单板上运行的一个程序就是一个进程。进程是操作系统分配资源的最小单位,不同的进程之间资源不共享,进程间通信需要使用特定的方式。python提供了自带的multiprocessing库,用于多线程场景。

线程的创建(函数式和对象式)

import multiprocessing
import time

def worker(interval):
    while True:
        print("The time is {0}".format(time.ctime()))
        time.sleep(interval)

if __name__ == "__main__":
    p = multiprocessing.Process(target = worker, args = (1,))
    p.start()
    p.join()
import multiprocessing
import time

class ClockProcess(multiprocessing.Process):
    def __init__(self, interval):
        multiprocessing.Process.__init__(self)
        self.interval = interval

    def run(self):
        while True:
            print("the time is {0}".format(time.ctime()))
            time.sleep(self.interval)

if __name__ == '__main__':
    p = ClockProcess(1)
    p.start()
    p.join()

守护进程

如果将一个进程设置为守护进程,那么当主进程结束时,守护进程也自动结束。

import multiprocessing
import time

class ClockProcess(multiprocessing.Process):
    def __init__(self, interval):
        multiprocessing.Process.__init__(self)
        self.interval = interval

    def run(self):
        while True:
            print("the time is {0}".format(time.ctime()))
            time.sleep(self.interval)

if __name__ == '__main__':
    p = ClockProcess(1)
    p.daemon = True # 设置子进程为守护进程后,看不到子进程的任何打印
    p.start()
    print("main process end")

如果想主进程等待子进程结束后,使用join即可

进程间通信

互斥锁

 

上一篇:Oracle统计一个小时内,一天内、一个星期内、一个月内、一年内的数据


下一篇:【LeetCode】57. Insert Interval [Interval 系列]