| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
求大神开导,明明有join 说明要等待线程结束后,才继续往下执行,为啥这个代码运行出来,首先就给我把下面的打印列表执行了呢? 
 如果是我写的有问题,哪应该如何更正呢? 
 
#utf-8 
import threading 
import time 
class CheShi(): 
    def __init__(self): 
        self.abc = [] 
        self.liebiao = [x for x in range(3)] 
        self.lock = threading.Lock()  #Lock 第一个字母大写。 
    def tianjia(self,i): 
        with self.lock: 
            time.sleep(0.1) 
            self.abc.append(i) 
            print(self.abc) 
            # print(threading.currentThread().name) 
    def many_threading(self): 
        duoxiancheng = [] 
        for i in self.liebiao: 
            duoxiancheng.append(threading.Thread(target=self.tianjia,args=(i,))) 
        print(duoxiancheng) 
        for x in duoxiancheng: 
            x.start() 
        for y in duoxiancheng:  # 这里明明有join啊 ,为什么会先执行下面的print 
            y.join 
        print(f'aaaaaaaaaaaaaaaaa{ceshi1.abc}')   #第一个被打印出来的是他, 我疯了。 
if __name__ =="__main__": 
    ceshi1 = CheShi() 
    ceshi1.many_threading()
 |   
 
 
 
 |