# -*- coding: utf-8 -*-#python 27#xiaodeng#线程和进程#http://www.cnblogs.com/fnng/p/3670789.html#多线程:import threadingfrom time import ctime,sleepdef music(func): for i in range(2): print 'i was listening to %s.%s'%(func,ctime()) sleep(1)def move(func): for i in range(2): for i in range(2): print 'i was the %s!%s'%(func,ctime()) sleep(5)threads=[]t1=threading.Thread(target=music,args=(u'爱情买卖',))threads.append(t1)t2=threading.Thread(target=move,args=(u'大秦帝国',))threads.append(t2)if __name__=='__main__': for t in threads: #将线程声明为守护线程, #必须在start()方法调用之前设置,如果不设置为守护线程,程序会被无限挂起。 t.setDaemon(True) #启动线程 t.start() #用于等待线程终止, #作用:在子线程完成运行之前,这个子线程的父线程将一直阻塞。 t.join() print "all over %s" %ctime() #说明:#创建数组threads,创建线程t1,使用threading.Thread()方法;#在这个方法中调用music方法,target=music,args方法对music进行传参。#子线程启动后,父线程也继续执行下去,当父线程执行完毕最后一条语句时,没有等待子线程,直接就退出了。同时子线程也一样结束。#子线程music、move和主线程 print "all over %s" %ctime()都是同一时间启动,但由于主线程执行完结束,所以导致子线程也终止。