【发布时间】:2016-10-06 22:09:17
【问题描述】:
import threading
def read_file():
f = open('text.txt')
for line in f:
print line.strip() ,' : ', threading.current_thread().getName()
if __name__ == '__main__':
threads = []
for i in range(15):
t = threading.Thread(target=read_file)
threads.append(t)
t.start()
问题:每个线程会从上面的文件中只读取每一行一次,还是有可能给定线程最终读取一行两次?
我的理解是,稍后启动的线程将覆盖较早启动的线程的文件句柄,导致较早的线程最终读取几行两次或三次或更多次。
当我运行这段代码时,结果与我预期的不同。
欢迎任何解释。
【问题讨论】:
-
你运行程序的结果是什么?你有没有注意到有什么恶魔从你的鼻子里飞出来? :)
标签: python multithreading python-multithreading