python多线程的学习

多线程也是坑了我几天的时间,不懂堵塞是什么意思。知道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")                                                 

这样运行的结果就是按照正常的顺序依次往下运行的

原文地址:https://www.cnblogs.com/Triangle-security/p/11889277.html