虽然线程可以在程序的执行过程中提高程序的运行效率,但是其带来的影响却难以忽略。
Lock类是threading中用于锁定当前线程的锁定类。顾名思义,其作用是对当前运行中的线程进行锁定,只有当前线程被释放后,后续线程才可以继续操作。
具体代码如下:
import threading,time,random count = 0 class MyThread_lock(threading.Thread): def __init__(self,lock,threadName): super(MyThread_lock,self).__init__(name=threadName) self.lock = lock def run(self): global count self.lock.acquire() #acquire()方法提供了确定对象被锁定的标志 for i in range(5): count +=1 time.sleep(0.3) print(self.getName(),count) self.lock.release() #release()在对象被当前线程使用完毕后将当前对象释放 lock = threading.Lock() for i in range(2): MyThread_lock(lock,"MyThreadName:"+str(i)).start()
Lock被传递给MyThread_lock,并在run方法中人为锁定当前线程,必须等线程执行完毕后,后续的线程才可以继续执行。程序执行结果如下: