python网络编程--操作系统介绍 进程的创建

1.操作系统介绍

2.进程的创建

1. multiprocessing模块

import time
from multiprocessing import Process

def f1():
    time.sleep(3)
    print('xxxx')

def f2():
    time.sleep(3)
    print('ssss')

# f1()
# f2()


#windows系统下必须写main,因为windows系统创建子进程的方式决定的,开启一个子进程,这个子进程 会copy一份主进程的所有代码,并且机制类似于import引入,这样就容易导致引入代码的时候,被引入的代码中的可执行程序被执行,导致递归开始进程,会报错
if __name__ == '__main__':  #
    # p1 = Process(target=f1,)
    p2 = Process(target=f2,)
    # p1.start()
    p2.start()

  

2. for循环创建进程

import time
from multiprocessing import Process

def f1(i):
    time.sleep(3)
    print(i)

if __name__ == '__main__':

    for i in range(20):
        p1 = Process(target=f1,args=(i,))
        p1.start()

3. 进程的传参方式和创建方式

from multiprocessing import Process

#演示两种传参方式
 def f1(n):
     print(n)


 if __name__ == '__main__':
     # p1 = Process(target=f1,args=('大力与奇迹',)) #创建进程对象
     p1 = Process(target=f1,kwargs={'n':'大力'}) #创建进程对象

     p1.start()  #给操作系统发送了一个创建进程的信号,后续进程的创建都是操作系统的事儿了


#进程的创建方式2

class MyProcess(Process):

    def __init__(self,n):
        super().__init__()  #别忘了执行父类的init
        self.n = n

    def run(self):
        print('宝宝and%s不可告人的事情'%self.n)


if __name__ == '__main__':

    p1 = MyProcess('高望')
    p1.start()

  

4. join方法

import time
from multiprocessing import Process

def f1():
    time.sleep(2)
    print('xxxx')

def f2():
    time.sleep(2)
    print('ssss')

# f1()
# f2()
if __name__ == '__main__':

    p1 = Process(target=f1,)
    p1.start()
    p1.join()  # 主进程等待子进程运行完才继续执行

    print('开始p2拉')

    p2 = Process(target=f2,)
    p2.start()
    p2.join()
    print('我要等了...等我的子进程...')
    # time.sleep(3)
    print('我是主进程!!!')

猜你喜欢

转载自www.cnblogs.com/robertx/p/10239273.html