您的位置:首页 > 其它

多线程

2016-01-09 10:44 309 查看
一、线程
Thread 是threading模块中最重要的类之一,可以使用它来创建线程。有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法;另一种是创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入.
Thread模块是比较底层的模块,Threading模块是对Thread做了一些包装的,可以更加方便的被使用。
另外在工作时,有时需要让多条命令并发的执行, 而不是顺序执行.
有关线程的详细介绍,请参考官方文档 https://docs.python.org/2/library/threading.html

二、例子
举例说明多线程
#多线程
#coding=utf-8
import threading #进口threading
from time import sleep
import time

def task1():
print ("Task 1 executed." )
sleep(1)

def task2():
print ("Task 2 executed." )
sleep(5)

print("多线程:")
starttime=time.time(); #记录開始时间
threads = [] #创建一个线程列表,用于存放须要运行的子线程
t1 = threading.Thread(target=task1) #创建第一个子线程。子线程的任务是调用task1函数。注意函数名后不能有()
threads.append(t1)#将这个子线程加入到线程列表中
t2 = threading.Thread(target=task2)#创建第二个子线程
threads.append(t2)#将这个子线程加入到线程列表中

for t in threads: #遍历线程列表
t.setDaemon(True) #将线程声明为守护线程。必须在start() 方法调用之前设置。假设不设置为守护线程程序会被无限挂起
t.start() #启动子线程
endtime=time.time();#记录程序结束时间
totaltime=endtime-starttime;#计算程序运行耗时
print ("耗时:{0:.5f}秒" .format(totaltime)); #格式输出耗时
print('---------------------------')

#下面为普通的单线程运行过程。
print("单线程:")
starttime=time.time();
task1();
task2();
endtime=time.time();
totaltime=endtime-starttime;
print ("耗时:{0:.5f}秒" .format(totaltime));



例子引用:/article/6894786.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: