Python之thread(一)
1.多线程实例化
#!/usr/bin/env python # -*- coding:utf8 -*- # @Time : 2017/12/13 10:07 # @Author : hantong # @File : thread_1.py #实例化多线程 import threading #第一种方法 import time def worker(n): print("start worker{0}".format(n)) #第二种方法 class MyTHread(threading.Thread): def __init__(self,args): super(MyTHread,self).__init__() self.args = args def run(self): print("start MyThread{0}".format(self.args)) if __name__ == "__main__": for i in xrange(1,6): t1 = threading.Thread(target=worker,args=(i,)) t1.start() time.sleep(1) t1.join() for x in xrange(6,11): t2 = MyTHread(x) t2.start() time.sleep(1) t2.join()执行结果:
start worker1
start worker2
start worker3
start worker4
start worker5
start MyThread6
start MyThread7
start MyThread8
start MyThread9
start MyThread10
2.多线程锁
#!/usr/bin/env python # -*- coding:utf8 -*- # @Time : 2017/12/13 10:25 # @Author : hantong # @File : thread_2.py import threading import time def worker(name,lock):
with lock: print("start {0}".format(name)) time.sleep(2) print("end {0}".format(name)) if __name__ == "__main__": lock = threading.Lock() t1 = threading.Thread(target=worker,args=("worker1",lock)) t2 = threading.Thread(target=worker,args=("worker2",lock)) t1.start() t2.start() print("main end")执行结果:
start worker1
main end
end worker1
start worker2
end worker2