在方法中使用Thread
def run(num):
print 'hi i am a thread.',num
def main():
threads=[]
for i in range(5):
t = threading.Thread(target=run,args=(i,))
threads.append(t)
t.start()
for t in threads:
t.join() # 顺序开始执行。 (不是执行完一个继续执行下一个)
if __name__=='__main__':
print 'start--->'
main()
print 'end--->'
在类中使用Thread
class MyThread(threading.Thread):
def __init__(self,num):
self.num = num
super(MyThread,self).__init__()
def run(self):
now = datetime.datetime.now()
print 'i am thread', self.num
time.sleep(1)
print (datetime.datetime.now() - now).seconds
def mainddd():
threads=[]
for i in range(5):
t = MyThread(i)
threads.append(t)
t.start()
for i in threads:
t.join() # 顺序开始执行, (不是执行完一个继续执行下一个)
if __name__=='__main__':
print 'start--->'
mainddd()
print 'end--->'
t.setDaemon(True)#设置子线程是否随主线程一起结束,必须再start()方法之前调用
isAlive()#线程是否在运行。
lock = Lock() #同步锁
lock.acquire()#上锁
lock.release()#解锁