多线程也是坑了我几天的时间,不懂堵塞是什么意思。知道socket里面的阻塞,却不知道多线程的阻塞,今天学习了,就来记录一下
多线程是并发的,一个形象的列子就是360在进行杀毒的时候,还有进行扫描文件,这个利用的就是多线程的知识点。
进程:每一个exe软件,或者一个启动的py文件都是一个单独的进程
所需环境:
python 3
import threading
import time
def musics():
music = ['周杰伦', '王菲', '嘻哈']
for i in music:
# print(i)
time.sleep(1)
def read():
book = ['china', 'chinese']
for i in book:
print(i)
time.sleep(1)
t1 = threading.Thread(target=musics)
t2 = threading.Thread(target=read)
t1.start()
t2.start()
print("hhhh")
这样的进行运行的时候,会发现hhh,不一定是最后打印输出的。如果想要打印输出,我们只需要在每个运行的线程后面添加一个join方法就可以了,(这个join方法不是那个连接的功能)。
加入join方法之后
import threading
import time
def musics():
music = ['周杰伦', '王菲', '嘻哈']
for i in music:
# print(i)
time.sleep(1)
def read():
book = ['china', 'chinese']
for i in book:
print(i)
time.sleep(1)
t1 = threading.Thread(target=musics)
t2 = threading.Thread(target=read)
t1.start()
t2.start()
t1.join()
t2.join()
print("hhhh")
这样运行的结果就是按照正常的顺序依次往下运行的