# Python中提供了threading模块来对多线程的操作 import threading def worker(n): print("start worker{0}".format(n)) # 方法二:从Thread继承,并重写run() 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): # 多线程现实有两种方式 # 方法一:将要执行的方法作为参数传给Thread的构造方法(和多进程类似) t1 = threading.Thread(target=worker,args=(i,)) t1.start() t1.join() for x in xrange(5,11): t2 = MyThread(x) t2.start()t2.join()
# 进程锁
# 通过threading.Lock()来创建锁,函数在执行的只有先要获得锁,执行完以后要释放锁 import threading import time # with lock: # lock.acquire() # lock.release() def worker(name,lock): with lock: print("start {0}".format(name)) time.sleep(5) 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.")
多线程一
最新推荐文章于 2018-01-08 21:49:13 发布