多线程必备知识
专业说法
- 进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。
- 线程是程序执行流的最小单元。线程是进程的一个实体,是被系统独立调度和分派的基本单位。
- 有个趣讲进程和线程的文档,有兴趣可以看看,受益匪浅。点击网址 阮一峰: 趣解进程与线程
我的理解
实现线程的方式
thread
threading
Queue
需要多线程的理解
举个简单的例子:
- 无线程单独去处理程序
#!/usr/bin/env python
#coding:utf-8
from time import ctime, sleep
# 听音乐的程序
def music():
for i in range(2):
print 'listening music: %s' %(ctime(),)
sleep(1)
# 看电影的程序
def movie():
for i in range(2):
print 'see movie: %s' % (ctime(),)
sleep(5)
if __name__ == '__main__':
music('短发')
movie('战狼2')
print 'all over ', ctime()
上面代码执行结果如下图所示:
分析执行结果:xx同学,先在家里听会音乐,听了两遍,听完后,发现自己喜欢的电影也上映了,看了之后觉得太过精彩,就又看了两遍。但,不是每个人都有那么长时间可以等待的,那xx同学可以在看电影的过程中同时听音乐,提高效率。因此对上述代码做了以下改进。
- 多进程处理程序