5.1.1 多线程
多线程操作一般通过 threading
模块来完成,启动一个线程其实就是把线程要执行的函数传递到 Thread 类的初始化方法中,然后调用 Thread
实例的 start
方法:
import threading
from time import sleep
def think():
print('start thinking in thread: ' + threading.current_thread().name)
sleep(1)
print('end thinking')
for i in range(3):
t = threading.Thread(target = think)
t.start()
print('Exit')
# start thinking in thread: Thread-1
# start thinking in thread: Thread-2
# start thinking in thread: Thread-3
# Exit
# end thinking
# end thinking
# end thinking
从输出结果来看,Python 的线程都是异步执行,如果要同步执行某个线程,需要调用线程的 join
方法,表示阻塞当前线程,直到整个线程退出为止:
for i in range(3):
t = threading.Thread(target = think)
t.start()
t.join()
print('Exit')
# start thinking in thread: Thread-1
# end thinking
# start thinking in thread: Thread-2
# end thinking
# start thinking in thread: Thread-3
# end thinking
# Exit
Last updated