python中线程的独占
1. python中使用threading模块创建线程
2. 而python中线程的独占是通过join()方法实现的(线程独占我们可以理解为某个线程优先级较高)
join()方法的功能:当前线程执行完后其他线程才会继续执行。
下面我们可以通过代码来理解:
import threading, time
def singing():
for i in range(5):
time.sleep(1)
print('嚣张, 下山, 老街')
def dancing():
while True:
time.sleep(1)
print('开始跳舞')
if __name__ == '__main__':
s = threading.Thread(target=singing)
s.start()
# s.join() #在d线程前加载,s线程执行完后d线程才执行,主线程2才输出
print('主线程1...')
d = threading.Thread(target=dancing)
d.start()
# s.join() #s线程执行完(d线程也在执行)则输出主线程2,接着执行d线程
# d.join() #s线程和d线程都执行完后主线程2才输出
print('主线程2...')
(我们一定要注意启动线程独占的位置,位置不同,结果就不同)
总结:
1.一个启动的线程, 一旦启动独占模式, 要求独占的线程执行完毕后, 才会执行后续的线程
2.一旦独占模式启动了, 独占之前的所有线程全部执行,知道启动独占模式的线程执行完毕后,CPU才会按照自己的算法