threading多线程

threading.thread的初始化函数原型:

  def __init__(self, group=None, target=None, name=None, args=(), kwargs={})

  :参数group是预留的,用于将来扩展;

  :参数target是一个可调用对象(也称为活动[activity]),在线程启动后执行;

  :参数name是线程“Thread-N”,N是一个数字。

  :参数args和kwargs分别表示调用target时的参数列表和关键字参数。

threading.join([timeout]):

   调用Thread.join将会使主调线程堵塞,直到被调用线程运行结束或超时。参数timeout是一个数值类型,表示超时时间,如果未提供该参数,那么主调线程将一直堵塞到被调线程结束。

EX:

#coding=utf-8
from time import sleep, ctime 
import threading

def super_player(file,time):
    for i in range(2):
        print 'Start playing: %s! %s' %(file,ctime())
        sleep(time)

#播放的文件与播放时长
list = {'爱情买卖.mp3':3,'阿凡达.mp4':5,'我和你.mp3':4}

threads = []
files = range(len(list))

#创建线程
for file,time in list.items():
    t = threading.Thread(target=super_player,args=(file,time))
    threads.append(t)

if __name__ == '__main__': 
    #启动线程
    for i in files:
        threads[i].start() 
  for i in files:
      threads[i].join()

    #主线程
    print 'end:%s' %ctime()

 

posted on 2016-11-23 16:46  明在奔跑的路上  阅读(123)  评论(0)    收藏  举报

导航