python 多线程
2015-09-08 15:38
573 查看
创建ThreadFunc类和创建Thread对象,来实现多线程。
创建新线程的时候,Thread对象会调用我们的TreadFunc对象,这是会用到一个特殊的函数
运行结果:
创建新线程的时候,Thread对象会调用我们的TreadFunc对象,这是会用到一个特殊的函数
__call__()。由于有一个参数的元组,这时要在代码中使用apply()函数。
# -*- coding: utf-8 -*- """ Created on Tue Sep 08 15:04:14 2015 @author: wt """ import threading from time import sleep,ctime loops = [4, 2] class ThreadFunc(object): def __init__(self, func, args,name=''): self.name = name self.func = func self.args = args def __call__(self): apply(self.func, self.args) def loop(nloop, nsec): print 'start loop',nloop,'at:', ctime() sleep(nsec) print 'loop', nloop, 'done at:', ctime() def main(): print 'starting at:',ctime() threads = [] nloops = range(len(loops)) for i in nloops: t = threading.thread(target=threadFunc(loop,(i,loop[i]), loop.__name__)) threads.append(t) for i in nloops: threads[i].start() for i in nloops: threads[i].join() print 'all DONE at:',ctime() if __name__ == '__main__': main()
运行结果:
starting at: Tue Sep 08 15:30:54 2015 start loop 0 at: Tue Sep 08 15:30:54 2015 start loop 1 at: Tue Sep 08 15:30:54 2015 loop 1 done at: Tue Sep 08 15:30:56 2015 loop 0 done at: Tue Sep 08 15:30:58 2015 all DONE at: Tue Sep 08 15:30:58 2015
相关文章推荐
- python可变长参数
- 零基础学python-12.5 修改列表的误区以及使用for和range修改列表
- 零基础学python-12.5 修改列表的误区以及使用for和range修改列表
- python基础1之用做calculator
- python随笔(一)
- WIN7系统下安装Python 3.X失败解决方式
- python读文件
- python3入门之集合set
- python3入门之集合set
- 【Python基础】Python面向对象 - 5 - 元类
- Why Python to be your first program language?
- python学习web篇
- python 时间浅析
- Python 之 使用 PIL 库做图像处理
- Python 读取WAV文件并绘制波形图
- Python 绘制频谱
- numpy矩阵
- Python 低通滤波器
- Python 读取WAV音频文件 画频谱
- 再谈python的变量作用域