手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Python之多进程与多线程

时间:2024-11-05 14:49:36

1、对比单进程、多进程、多线程的使用案例。

2、一、先实现单进程的案例:1、导入threading和time库;如:from time import ctime,sleepimport threading

3、定义两个函数:如:def talk(content,loop): for i in range(loop): print("Start talk %s %r" %(content,ctime())) sleep(2)def write(content,loop): for i in range(loop): print("Start write %s %r" %(content,ctime())) sleep(6)

4、运行主函数:if __name__=='__main__': talk("Hello world",3) write("Bye Bye",3) print("All end 2222:%r" %ctime())

5、全部代码为:from time import ctime,sleepimport threadingdef talk(content,loop): for i in range(loop): print("Start talk %s %r" %(content,ctime())) sleep(2)def write(content,loop): for i in range(loop): print("Start write %s %r" %(content,ctime())) sleep(6) if __name__=='__main__': talk("Hello world",3) write("Bye Bye",3) print("All end 2222:%r" %ctime())

Python之多进程与多线程

6、运行结果如下图所示:

Python之多进程与多线程

7、二、接下来,编写多进程的案例:6、函数同单进程中的函数,其中需要定义进程对象;如:threads=[]t1=threading.Thread(target=talk,args=('Hello world',3))threads.append(t1)t2=threading.Thread(target=write,args=('Bye Bye',3))threads.append(t2)

8、运行主函数:if __name__=='__main__': for t in threads: t.start() for t in threads: t.join() print("All end 2222:%r" %ctime())

9、全部代码为:from time import ctime,sleepimport threadingdef talk(content,loop): for i in range(loop): print("Start talk %s %r" %(content,ctime())) sleep(2)def write(content,loop): for i in range(loop): print("Start write %s %r" %(content,ctime())) sleep(6)threads=[]t1=threading.Thread(target=talk,args=('Hello world',3))threads.append(t1)t2=threading.Thread(target=write,args=('Bye Bye',3))threads.append(t2) if __name__=='__main__': for t in threads: t.start() for t in threads: t.join() print("All end 2222:%r" %ctime()) 如下图所示:

Python之多进程与多线程

10、运行代码,结果如下图所示:

Python之多进程与多线程

11、三、接下来,编写多线程的案例:10、函数同单进程中的函数,其中需要定义进程对象;如:processes=[]p1 = multiprocessing.Process(target=talk, args=('Hello world',3))processes.append(p1)p2=multiprocessing.Process(target=write,args=('Bye',3))processes.append(p2)

12、定义主函数为:for p in processes: p.start() for p in processes: p.join() print("All Processes are Run %s" %ctime())

13、全部代码为:from time import ctime,sleepimport multiprocessingimport threadingdef talk(content,loop): for i in range(loop): print("Start talk %s %r" %(content,ctime())) sleep(2)def write(content,loop): for i in range(loop): print("Start write %s %r" %(content,ctime())) sleep(6) processes=[]p1 = multiprocessing.Process(target=talk, args=('Hello world',3))processes.append(p1)p2=multiprocessing.Process(target=write,args=('Bye',3))processes.append(p2) if __name__=='__main__': for p in processes: p.start() for p in processes: p.join() print("All Processes are Run %s" %ctime())

Python之多进程与多线程

14、运行结果如下图所示:

Python之多进程与多线程

15、综上所述,单进程、多进程、多线程的执行结果,主要是体现在执行的时间点的差异。

© 手抄报圈