单线程&多线程

本文通过两个示例,分别展示了Python中单线程和多线程的应用,并比较了它们在执行效率上的差异。单线程示例按顺序播放视频和音乐;多线程示例同时进行这两项任务,结果显示多线程程序运行时间更短。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.基于python的单线程示例:

from time import ctime,sleep
import time
def play_video(video):
    for i in range(2):
        print ("I am playing video: %s at %s"%(video,ctime()))
        sleep(5)


def play_music(music):
    for i in range(2):
          print ("I am playing music: %s at %s"%(music,ctime()))
          sleep(5)

time_start =time.time()
if __name__=="__main__":

 play_video("speed_and_crazy")
 play_music("chengdu")

 print ("all are over at %s"%ctime())

 time_end = time.time()
 result = time_end - time_start
 print("This program needs %f s" % result)

2.基于python的多线程示例:

from time import ctime,sleep
import threading
import time
def play_video(video):
    for i in range(2):
        print ("I am playing video: %s at %s \n"%(video,ctime()))
        sleep(5)

def play_music(music):
    for i in range(2):
        print ("I am playing music: %s at %s \n"%(music,ctime()))
        sleep(5)

threads=[]

thread1=threading.Thread(target=play_video,args=("speed_and_crazy",))

threads.append(thread1)

thread2=threading.Thread(target=play_music,args=("chengdu",))

threads.append(thread2)


time_start =time.time()
if __name__=="__main__":

    for thread in threads:
        thread.setDaemon(True)
        thread.start()
    thread.join()  #加在循环外,
    print ("all are over at %s \n"%ctime())
time_end = time.time()
result = time_end - time_start
print("This program needs %f s"%result)

3.小结:多线程代码实现较单线程在时间效率上要快得多。但是,据说线程过多也会出现问题,因此,还需继续探索。

待更新。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值