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、综上所述,单进程、多进程、多线程的执行结果,主要是体现在执行的时间点的差异。

  • 欢乐斗地主残局闯关第四十一关
  • 微信欢乐斗地主残局困难关卡71关图文通关攻略
  • 微信欢乐斗地主残局闯关专家第139关怎么过
  • 欢乐斗地主残局困难164关怎么过
  • 微信欢乐斗地主残局困难第63关攻略
  • 热门搜索
    手抄报大全 世界无烟日手抄报 小学生端午节手抄报 手抄报设计实用手册 关于诗歌的手抄报 手抄报春节 红领巾心向党手抄报内容 抗美援朝手抄报 四年级英语手抄报 春天手抄报图片