Python之多进程与多线程

2025-12-28 06:39:09

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

2、一、先实现单进程的案例:

1、导入threading和time库;

如:

from time import ctime,sleep

import 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,sleep

import threading

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)

    

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,sleep

import threading

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)

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,sleep

import multiprocessing

import threading

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)

   

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢