python:多线程

        python中提供thread 和 threading模块对多线程提供支持,其中threading模块是对thread模块的封装,多数情况下使用threading来进行多线程编程。

一.使用threading.Thread在线程中运行函数

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


def music(func):
    for i in range(2):
        print '',i,'次听音乐!!!!'
        print 'I was listening to %s. %s' %(func,ctime())
        sleep(1)

def move(func):
    for i in range(2):
        print '',i,'次看电影!!!'
        print 'I was at the %s!! %s' %(func,ctime())
        
def run(x,y):
    s=x+y
    print '--------',s,'---------'


#在线程中运行函数
if __name__ == '__main__':
    threads=[]
    t1=threading.Thread(target=music,args=(u'爱情买卖',))
    threads.append(t1)
    
    t2=threading.Thread(target=move,args=(u'阿凡达',))
    threads.append(t2)
    
    t3=threading.Thread(target=run,args=(10,12))
    threads.append(t3)
    
    for t in threads:
        t.setDaemon(True)
        t.start()
   
    for t in threads:
        t.join()
    
    print 'all over %s' %ctime()

二.继承threading.Thread 重载run方法

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

#继承threading.Thread类,重写run方法
class mytheard(threading.Thread):
    def __init__(self,num):
        threading.Thread.__init__(self)
        self.num=num
        
    def run(self):
        print 'I am',self.num
        sleep(5)
        
        
class Mythread(threading.Thread):
    def __init__(self,ssid,tname):
        threading.Thread.__init__(self,name=tname)
        self.ssid=ssid
         
    def run(self):
        x=0
        print x
        time.sleep(10)
        print self.ssid
        
def example1():
    t1=mytheard(1)
    t2=mytheard(2)
    t3=mytheard(3)
    t1.start()
    t2.start()
    t3.start()
    
    
def example2():
    t=Mythread(2,'t1')
    t.setDaemon(True)#设置该线程为守护线程
    t.start()
    print t.getName()
    t.setName('t2')
    print t.getName()#获取线程名
    print t.isAlive()#判断该线程是否还活着
    print t.isDaemon()#判断该线程是否为守护线程
    t.join()#阻塞主线程,直到线程t执行结束
    print 'work end!!!!'
        
if __name__ == '__main__':
    example2()
posted @ 2015-12-10 19:03  奋斗的珞珞  阅读(229)  评论(0编辑  收藏  举报