有一文本文件,要求获取文档中“is”所在的行
思路:
创建两个进程,一个负责读取文本内容,遍历文本,发现“is”就将当前行存入队列,另一个进程实时从队列中获取数据,打印并显示
实现:
from multiprocessing import Process, Queue
import time
def set_data(q):
file = open("english.txt", encoding='UTF-8')
count = 0
for line in file:
count += 1
if "is" in line:
q.put(count)
time.sleep(1)
def get_data(q):
while True:
value = q.get(True)
print("含有is的行:", value)
if __name__ == '__main__':
queue = Queue()
process1 = Process(target=set_data, args=(queue, ))
process2 = Process(target=get_data, args=(queue,))
process1.start()
process2.start()
process1.join()
含有is的行: 2
含有is的行: 6
含有is的行: 7
含有is的行: 10