Python的线程使用方式跟进程的使用方式类似,这里通过线程来演示。
存在两种产生线程的方式
1. 直接使用Thread
2. 继承Thread
直接使用Thread的方式:
def func():
print('Thread start')
print('Thread end')
if __name__ == '__main__':
t = Thread(target=func)
t.start()
t.join()
继承Thread的方式:
from time import sleep
from threading import Thread, Lock
class MyThread(Thread):
def __init__(self, name, lock):
super(MyThread, self).__init__(name=name)
self.lock = lock
def run(self):
with self.lock:
print('my name is %s, i will sleep 2 seconds' % self.name)
sleep(2)
print('i wake up now.')
if __name__ == '__main__':
lock = Lock()
mt1 = MyThread('t1', lock)
mt2 = MyThread('t2', lock)
mt1.start(); mt2.start()
mt1.join(); mt2.join()
print('main thread end!')
Thread的关键函数:
start(), 启动线程,此函数应且仅应被调用一次。
run(), 重载函数,当调用start时将被调用。
join(),调用者线程将等待 被调用者线程 执行完成。