介绍
多线程类似于同时执行多个不同程序,多线程运行有如下优点:
1.使用线程可以把占据长时间的程序中的任务放到后台去处理。
2.用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度
3.程序的运行速度可能加快
4.在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。
简单的示例
示例一
手动创建三个线程同时执行,打印和后,等待5秒结束。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import time import threading
def f1(a1, a2): print a1 + a2 time.sleep(5)
t = threading.Thread(target=f1, args=(111, 111))
t.start()
t = threading.Thread(target=f1, args=(222, 222)) t.start()
t = threading.Thread(target=f1, args=(333, 333)) t.start()
|
示例二
这段代码执行的效果是2秒内全部执行完成,而不是每执行一次函数等待两秒,打开了三个线程同时执行函数,打印三次时间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import threading import time
def test(x): date = time.time() print x print date time.sleep(2)
threads = []
for i in range(3): t = threading.Thread(target=test, args=(i,)) threads.append(t)
for thr in threads: thr.start()
for thr in threads: thr.join()
|