# -*- coding: utf-8-*-
import datetime
import time
import threading
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
threadLock = threading.Lock()
class ThreadDemo(threading.Thread):
def __init__(self, t_name):
threading.Thread.__init__(self, name=t_name)
self.name=t_name
def run(self):
# 加锁 #这里线程执行的方法如果会引发高并发,就是同一时刻多个线程操作同一个对象导致数据不准确,那么就需要加锁处理来保证数据的准确性
# 因为我这里线程要执行的任务只是输出当前时间,那么就不需要加锁了
#threadLock.acquire()
# 线程需要执行的方法
print '线程' + self.name + '启动,当前时间',str(datetime.datetime.now())+'\n'
# 释放锁
#threadLock.release()
time.sleep(1)
def main():
try:
totalThread = 1000 # 需要创建的线程数量
threads = [] # 创建线程列表
for i in range(totalThread):
demo = ThreadDemo("ThreadDemo-%s" % str(i))
threads.append(demo)
for i in range(totalThread):
threads[i].start()
#print '线程' + str(i) + '启动'
for t in threads:
t.join()
print '线程' + t.name + '终止'
except Exception,e:
print e
if __name__ == '__main__':
main()
print '子线程执行完毕,主线程终止!'