求大神带带新手,能帮忙解释一下,为什么子线程不遵循while len(alist)>94条件,接着执行语句
import random, time, string, threading在这里插入代码片
mlock = threading.Lock()
alist = []
blist = []
class Demo00(threading.Thread):
def run(self):
afile = open(r'{0}.txt'.format(threading.currentThread().getName()), 'w', encoding='UTF-8')
while len(alist) > 94:
mlock.acquire()
b = alist.pop()
print(threading.currentThread().name, len(alist))
print(b, end='\n', file=afile)
time.sleep(0.01)
mlock.release()
afile.close()
if __name__ == '__main__':
alist = [j for j in range(100)]
for i in range(5):
de = Demo00()
blist.append(de)
de.start()
for i in blist:
i.join()
print('end')
```运行结果:
————————————————————————————————
Thread-1 99
Thread-1 98
Thread-1 97
Thread-1 96
Thread-5 95
Thread-5 94
Thread-3 93
Thread-4 92
Thread-1 91
Thread-2 90
end