并发编程[第二篇]进程

一.进程的两种调用方式

 进程的调用方式类似线程

--直接调用自定义的目标函数

from multiprocessing import Process
import time
def myThreading():
    time.sleep(2)
    print('子线程正在运行',time.ctime())

def myThreading1():
    time.sleep(4)
    print('子线程1正在运行',time.ctime())


if __name__ == '__main__':
    q = Process(target=myThreading)
    q1 = Process(target=myThreading1)

    # q.daemon
    # q1.daemon

    q.start()
    q1.start()

    # q.join()
    # q1.join()

    print('主线程正在运行',time.ctime())

--继承父类并改写其run函数

from multiprocessing import Process
import time

class MyProcess(Process):
    def __init__(self):
        super(MyProcess, self).__init__()
        #self.name = name

    def run(self):
        time.sleep(1)
        print ('hello', self.name,time.ctime())


if __name__ == '__main__':
    p_list=[]
    for i in range(3):
        p = MyProcess()
        p.start()
        p_list.append(p)

    for p in p_list:
        p.join()

    print('end')

多个进程之间使用的资源不同,内存地址自然不同

# from multiprocessing import Process
# n=100 #在windows系统中应该把全局变量定义在if __name__ == '__main__'之上就可以了
# def work():
#     global n
#     n=0
#     print('子进程内: ',n)
#
# #进程直接的内存空间是隔离的
# if __name__ == '__main__':
#     p=Process(target=work)
#     p.start()
#     print('主进程内: ',n)

未完待续。。。。。线程队列,进程池

猜你喜欢

转载自www.cnblogs.com/xxp1624/p/11256744.html
今日推荐