龙空技术网

python线程和进程

至尊小狸子 87

前言:

此时小伙伴们对“python线程与进程”都比较着重,各位老铁们都想要了解一些“python线程与进程”的相关知识。那么小编也在网摘上收集了一些关于“python线程与进程””的相关文章,希望姐妹们能喜欢,同学们一起来了解一下吧!

今天整理了下进程和线程,不太懂的小伙伴们可以看下哦!!!尤其是代码部分,可以根据使用不同的方法区分线程和进程哈!!!

进程简单来说进程就是运行着的程序。我们写了一个python程序,运行起来,就属于一个进程。

线程每个进程至少包含一个线程。线程是操作系统调度运算的最小单位,是进程的实际运作单位线程是操作系统创建的,每个线程对应一个代码执行的数据结构,保存了代码执行过程中的重要的状态信息。当Python解释器程序运行起来(成为一个进程),OS就自动的创建一个线程,通常称为主线程,在这个主线程里面执行代码指令。

各位小伙伴,python基础基本上就学完啦,不过还需要多多动手练习哦!学习了一个【学生管理系统】简易版,有想要代码的小伙伴可以留言评论哈,我分享给大家!!!

*******进程************'''多任务:同一时间执行多个任务并发: 在一段时间多任务交替完成并行: 同一时间段内多任务同时执行''''''进程:资源分配的最小单位,运行起来的程序程序运行会创建主进程'''#1、导入包import  multiprocessing#2、创建子进程类的进程对象,进行对象= multiprocessing.Process(target = 任务名)【手动创建的就是子进程】#3、启动进程执行任务 , 进程对象。start()import multiprocessingimport timeimport osdef sing():    print('sing is pid',os.getpid())    print(os.getppid())    print('sing is good')def dance():    print('dance is pid', os.getpid())    print(os.getppid())    print('dance is good')if __name__ =='__main__':   #主进程,创建两个子进程    print(os.getpid())    singP = multiprocessing.Process(target=sing)    danceP = multiprocessing.Process(target=dance)    singP.start()    danceP.start()'''函数有一个参数:singP = multiprocessing.Process(target=sing,arg(3,))  以元组方式传参danceP = multiprocessing.Process(target=dance,kwargs={'num',3})  以字典方式传参函数有两个参数singP = multiprocessing.Process(target=sing,arg(3,4))  以元组方式传参,按照顺序danceP = multiprocessing.Process(target=dance,kwargs={'num':3,'age':4})  以字典方式传参,根据键名传递''''''获取进程编号方法os.getpid() : 获取当前进程编号os.getppid(): 获取当前进程父进程编号''''''默认情况下: 主进程要等所有子进程结束后才会结束那么:如果主进程结束,所有子进程都结束怎么做:f __name__ =='__main__':   #主进程,创建两个子进程    print(os.getpid())    singP = multiprocessing.Process(target=sing)    singP.daemon = True   #设置后,子进程会守护主进程,主进程结束后,子进程也会结束    danceP = multiprocessing.Process(target=dance)    singP.start()    danceP.start()'''
********线程*********import threadingimport timedef sing():    for i in range(3):        print("sing...")        time.sleep(0.2)    passdef dance():    for i in range(3):        print("dance...")        time.sleep(0.2)    passif __name__ == '__main__':    sing_thread = threading.Thread(target=sing)    sing_thread.start()    dance_thread = threading.Thread(target=dance)    dance_thread.start()

标签: #python线程与进程